package webapp.panel; import java.util.Iterator; import java.util.List; import components.pricesheet.PriceSheetManager; import wicket.Component; import wicket.extensions.markup.html.repeater.data.grid.DataGridView; import wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; import wicket.extensions.markup.html.repeater.data.grid.PropertyPopulator; import wicket.extensions.markup.html.repeater.util.SortableDataProvider; import wicket.markup.html.basic.Label; import wicket.markup.html.panel.Panel; import wicket.model.AbstractReadOnlyDetachableModel; import wicket.model.IModel; public class PriceSheetExtract extends Panel { private static final long serialVersionUID = 1L; public PriceSheetExtract(String panelid) { super(panelid); PriceSheetManager psheet = new PriceSheetManager("test.csv"); int cols = psheet.getRandomRow().size(); ICellPopulator[] columns = new ICellPopulator[cols]; for(int i = 0 ; i < cols ; i++) { columns[i] = new PropertyPopulator(Integer.valueOf(i).toString()); } add(new DataGridView("rows",columns,new MySortableProvider(psheet))); } public class MySortableProvider extends SortableDataProvider { private static final long serialVersionUID = 1L; private PriceSheetManager psheet; public MySortableProvider(PriceSheetManager psheet) { this.psheet = psheet; } public Iterator iterator(int arg0, int arg1) { return psheet.range(arg0,arg1).iterator(); } public IModel model(Object arg0) { // stumped here? return new DetachableRowModel(arg0); } public int size() { return psheet.getAll().size(); } } // yep here as well?? public class DetachableRowModel extends AbstractReadOnlyDetachableModel { public DetachableRowModel(Object arg0) { // } @Override public IModel getNestedModel() { // TODO Auto-generated method stub return null; } @Override protected void onAttach() { } @Override protected void onDetach() { } @Override protected Object onGetObject(Component component) { return null; } } }