package org.nocket.component.table; import java.util.List; import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractToolbar; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider; import org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar; import org.apache.wicket.extensions.markup.html.repeater.data.table.NoRecordsToolbar; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.OddEvenItem; import org.apache.wicket.model.IModel; public class DMDDefaultDataTable<T> extends DataTable<T, String> implements IRowItemSettable { private static final long serialVersionUID = 1L; private Class rowItemClass; public DMDDefaultDataTable(String id, List<IColumn<T, String>> columns, ISortableDataProvider<T, String> dataProvider, int rowsPerPage, TableItemPosition navigationbarPosition) { super(id, columns, dataProvider, rowsPerPage); addToolbar(navigationbarPosition, new NavigationToolbar(this)); addToolbar(TableItemPosition.top, new DMDHeadersToolbar(this, dataProvider)); addToolbar(TableItemPosition.bottom, new NoRecordsToolbar(this)); } protected void addToolbar(TableItemPosition position, AbstractToolbar abstractToolbar) { if (TableItemPosition.bottom.equals(position)) { addBottomToolbar(abstractToolbar); } else { addTopToolbar(abstractToolbar); } } public void setRowItemClass(Class rowItemClass) { this.rowItemClass = rowItemClass; } @Override @SuppressWarnings( { "rawtypes", "unchecked" }) protected Item<T> newRowItem(final String id, final int index, final IModel<T> model) { Class clazz = rowItemClass != null ? rowItemClass : OddEvenItem.class; return (Item<T>) ReflectionUtil.newInstance(clazz, new Class[] { String.class, int.class, IModel.class }, new Object[] { id, index, model }); } }