|
Page Created :
WICKET :
Simple Sortable DataTable Example
Simple Sortable DataTable Example has been created by Adam A. Koch (Nov 01, 2007). Content:A Simple Sortable DataTable Exampleby Adam Koch DataTablePage.java package com.adamkoch.learning.wicket;import org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.Model; import org.apache.wicket.model.StringResourceModel; public class DataTablePage extends WebPage { public DataTablePage() { final UserProvider userProvider = new UserProvider(); IColumn[] columns = new IColumn[2]; columns[0] = new PropertyColumn(new StringResourceModel("firstNameTableHeaderLabel", this, null), "name.first", "name.first"); columns[1] = new PropertyColumn(new Model("Last Name"), "name.last", "name.last"); DefaultDataTable table = new DefaultDataTable("datatable", columns, userProvider, 10); add(table); } } UserProvider.java package com.adamkoch.learning.wicket; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.PropertyModel; public class UserProvider extends SortableDataProvider { List list = new ArrayList(); public UserProvider() { // important or you'll get a null pointer on line 40 setSort("name.first", true); list.add(new Contact(new Name("Abby", "Zerind"))); list.add(new Contact(new Name("Bernard", "Youst"))); list.add(new Contact(new Name("Charlie", "Xerg"))); list.add(new Contact(new Name("Deitri", "West"))); list.add(new Contact(new Name("Ernie", "Vuntang"))); list.add(new Contact(new Name("Frank", "Unter"))); } 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 AbstractReadOnlyModel() { public Object getObject() { return object; } }; } } class Contact { private final Name name; public Contact(Name name) { this.name = name; } public Name getName() { return name; } } class Name { private String firstName; private String lastName; public Name(String fName, String lName) { firstName = fName; lastName = lName; } public String getFirst() { return firstName; } public void setFirst(String firstName) { this.firstName = firstName; } public String getLast() { return lastName; } public void setLast(String lastName) { this.lastName = lastName; } } DataTablePage.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>DataTable Example</title> </head> <body> <table wicket:id="datatable"></table> </body> </html> DataTablePage.properties firstNameTableHeaderLabel=First Name
|
Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request
Unsubscribe or edit your notifications preferences
Unsubscribe or edit your notifications preferences
