package hu.sch.web.wicket.components.tables;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
/**
* Egy olyan {@link AbstractColumn} gyermekosztály, ami egy {@link Panel}t képes megjeleníteni
*
* @author messo
* @since 2.3.1
*/
public abstract class PanelColumn<T> extends AbstractColumn<T, String> {
public PanelColumn(final IModel<String> displayModel, final String sortProperty) {
super(displayModel, sortProperty);
}
public PanelColumn(final String header, final String sortProperty) {
this(new Model<String>(header), sortProperty);
}
public PanelColumn(final IModel<String> displayModel) {
this(displayModel, null);
}
public PanelColumn(final String header) {
this(header, null);
}
@Override
public void populateItem(final Item<ICellPopulator<T>> item, final String componentId,
final IModel<T> rowModel) {
item.add(getPanel(componentId, rowModel.getObject()));
}
protected abstract Panel getPanel(final String componentId, final T obj);
}