http://wicketstuff.org/wicket/repeater/?wicket:bookmarkablePage=:org.apache.wicket.examples.repeater.DataTablePage
-igor On Thu, Jul 30, 2009 at 11:14 AM, Elad Katz<[email protected]> wrote: > Hi, I have a DefaultDataTable with 5 columns, I want to be able to register > to an onclick method that fires when the user will click a specific row\cell > in the table. > In other words, I need to be able to open an edit screen when the user > clicks the row he wants to edit, and for that I need the row to be clickable > (or just the name cell) and I need to be able to be able to hook up to that > event. > > My Code: > *Please bear in mind that I've only started developing in wicket a week ago > so if you see anything that doesn't make sense, please let me know so I can > fix it.* > *WebPage.java:* > >> locationsEntityFacade = >> LookupHelper.getInstance().lookupLocationsEntityFacade(); >> List locations = locationsEntityFacade.findAll(); >> int count = locations.size(); >> >> add(new Label("locationsCount", String.valueOf(count))); >> >> LocationsProvider locationsProvider = new LocationsProvider(); >> >> IColumn[] columns = new IColumn[5]; >> columns[0] = new PropertyColumn(new Model("Name"), "name", "name"); >> columns[1] = new PropertyColumn(new Model("Address 1"), >> "streetAddress1", "streetAddress1"); >> columns[2] = new PropertyColumn(new Model("Address 2"), >> "streetAddress2", "streetAddress2"); >> columns[3] = new PropertyColumn(new Model("City"), "city", "city"); >> columns[4] = new PropertyColumn(new Model("State"), "usState", >> "usState"); >> >> DefaultDataTable table = new DefaultDataTable("datatable", columns, >> locationsProvider, 10); >> add(table); > > * Location Provider:* > > public class LocationsProvider extends SortableDataProvider{ >> >> List list = new ArrayList(); >> LocationsEntityFacadeLocal locationsEntityFacade; >> > > >> public LocationsProvider() { >> setSort("id", true); >> locationsEntityFacade = >> LookupHelper.getInstance().lookupLocationsEntityFacade(); >> list = locationsEntityFacade.findAll(); >> } >> >> public Iterator iterator(int first, int count) { >> List newList = new ArrayList(); >> newList.addAll(list.subList(first, first + count)); >> final String sortColumn = this.getSort().getProperty(); >> final boolean ascending = this.getSort().isAscending(); >> Collections.sort(newList, new Comparator() { >> >> public int compare(Object obj1, Object obj2) { >> PropertyModel model1 = new PropertyModel(obj1, sortColumn); >> PropertyModel model2 = new PropertyModel(obj2, sortColumn); >> >> Object modelObject1 = model1.getObject(); >> Object modelObject2 = model2.getObject(); >> >> int compare = ((Comparable) >> modelObject1).compareTo(modelObject2); >> >> if (!ascending) >> compare *= -1; >> >> return compare; >> } >> }); >> >> return newList.iterator(); >> } >> >> public int size() { >> return list.size(); >> >> } >> >> public IModel model(final Object object) { >> return new CompoundPropertyModel((LocationsEntity)object); >> } > > > *webpage.html: > > * >> >> ... > > <table wicket:id="datatable"></table> >> > ... >> > > Thanks, > Elad > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
