package org.github.etcd.viewer.html.cluster;
import java.util.List;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.GenericPanel;
import org.apache.wicket.model.ChainingModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.github.etcd.service.rest.EtcdMember;
public class ClusterMembersPanel extends GenericPanel<List<EtcdMember>> {
private static final long serialVersionUID = 1L;
public ClusterMembersPanel(String id, IModel<List<EtcdMember>> model) {
super(id, model);
setOutputMarkupId(true);
add(new ListView<EtcdMember>("peers", getModel()) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<EtcdMember> item) {
item.add(new Label("id", new PropertyModel<>(item.getModel(), "id")));
item.add(new Label("name", new PropertyModel<>(item.getModel(), "name")));
item.add(new Label("clientURLs", new PropertyModel<>(item.getModel(), "clientURLs")));
item.add(new Label("peerURLs", new PropertyModel<>(item.getModel(), "peerURLs")));
item.add(new Label("state", new PropertyModel<>(item.getModel(), "state")));
item.add(new Label("version", new PropertyModel<>(item.getModel(), "version")));
item.add(new AttributeAppender("class", new ChainingModel<String>(item.getModel()) {
private static final long serialVersionUID = 1L;
@Override
public String getObject() {
@SuppressWarnings("unchecked")
IModel<EtcdMember> peerModel = (IModel<EtcdMember>) getChainedModel();
if (peerModel.getObject().getState() == null) {
return "danger";
}
if ("leader".equals(peerModel.getObject().getState())) {
return "success";
}
return "";
}
}));
}
});
}
}