package de.flower.rmt.ui.panel;
import de.flower.common.model.db.entity.IEntity;
import de.flower.common.ui.markup.html.list.EntityListView;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.border.Border;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;
import java.util.List;
/**
* Listview that displays listEmpty-message.
*
* @author flowerrrr
*/
public abstract class ListViewPanel<T extends IEntity> extends Border {
public ListViewPanel(final String id, final IModel<List<T>> listModel, final IModel<String> noEntryModel) {
super(id, listModel);
addToBorder(new WebMarkupContainer("noEntry") {
@Override
public boolean isVisible() {
return listModel.getObject().isEmpty();
}
}.add(new Label("noEntryLabel", noEntryModel)));
add(new EntityListView<T>("list", listModel) {
@Override
public boolean isVisible() {
return !getList().isEmpty();
}
@Override
protected void populateItem(final ListItem<T> listItem) {
ListViewPanel.this.populateItem(listItem);
}
});
}
@Override
protected void onConfigure() {
super.onConfigure();
getBodyContainer().setVisible(getBodyContainer().get("list").isVisible());
}
protected abstract void populateItem(final ListItem<T> listItem);
}