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]

Reply via email to