package org.github.etcd.viewer.html.pages;
import java.util.Arrays;
import java.util.List;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;
public class AboutPage extends TemplatePage {
private static final long serialVersionUID = 1L;
public AboutPage() {
IModel<List<String>> references = new LoadableDetachableModel<List<String>>() {
private static final long serialVersionUID = 1L;
@Override
protected List<String> load() {
return Arrays.asList(new StringResourceModel("references", AboutPage.this, Model.of()).getObject().split(","));
}
};
add(new ListView<String>("references", references) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<String> item) {
item.add(new WebMarkupContainer("image", new StringResourceModel("${}.image", item.getModel(), "")) {
private static final long serialVersionUID = 1L;
@Override
protected void onConfigure() {
super.onConfigure();
if (getDefaultModelObjectAsString().isEmpty()) {
setVisible(false);
} else {
add(AttributeAppender.append("src", getDefaultModel()));
}
}
});
item.add(new WebMarkupContainer("icon", new StringResourceModel("${}.icon", item.getModel(), "fa fa-question fa-5x")) {
private static final long serialVersionUID = 1L;
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(!getParent().get("image").isVisible());
add(AttributeAppender.append("class", getDefaultModel()));
}
});
ExternalLink url;
item.add(url = new ExternalLink("url", new StringResourceModel("${}.url", item.getModel())));
url.add(new Label("label", new StringResourceModel("${}.label", item.getModel())));
item.add(new Label("description", new StringResourceModel("${}.description", item.getModel())));
}
});
}
@Override
protected String getDefaultPageTitle() {
return "etcd viewer | about";
}
}