blob: b6285e6d0a4dbcdc69068b203e867946fb6ff43c [file] [log] [blame]
/*
* $Id$
* $Revision$
* $Date$
*
* ====================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package wicket.examples.displaytag.list;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import wicket.PageParameters;
import wicket.examples.displaytag.list.SortableListViewHeader;
import wicket.examples.displaytag.list.SortableListViewHeaders;
import wicket.markup.html.WebPage;
import wicket.markup.html.basic.Label;
import wicket.markup.html.list.ListItem;
import wicket.markup.html.list.ListView;
import wicket.model.PropertyModel;
/**
* Dummy page used for resource testing.
*/
public class SortableTableHeadersPage extends WebPage
{
/**
* Construct.
* @param parameters page parameters.
*/
public SortableTableHeadersPage(final PageParameters parameters)
{
super();
List list = new ArrayList();
addUser(list, 1, "Name-aaa", "mail-1");
addUser(list, 2, "Name-bbb", "mail-2");
addUser(list, 3, "Name-ccc", "mail-3");
addUser(list, 4, "Name-ddd", "mail-4");
addUser(list, 5, "Name-eee", "mail-5");
addUser(list, 6, "Name-aba", "mail-6");
addUser(list, 7, "Name-bab", "mail-7");
addUser(list, 8, "Name-dca", "mail-8");
addUser(list, 9, "Name-eaa", "mail-9");
ListView table = new ListView("table", list)
{
protected void populateItem(ListItem listItem)
{
User user = (User)listItem.getModelObject();
listItem.add(new Label("id", new PropertyModel(user, "id")));
listItem.add(new Label("name", new PropertyModel(user, "name")));
listItem.add(new Label("email", new PropertyModel(user, "email")));
}
};
add(table);
add(new SortableListViewHeaders("header", table)
{
/*
* If object does not support equals()
*/
protected int compareTo(SortableListViewHeader header, Object o1, Object o2)
{
if (header.getId().equals("id"))
{
return ((User)o1).id - ((User)o2).id;
}
return super.compareTo(header, o1, o2);
}
/**
* Define how to do sorting
* @see SortableListViewHeaders#getObjectToCompare(SortableListViewHeader,
* java.lang.Object)
*/
protected Comparable getObjectToCompare(final SortableListViewHeader header,
final Object object)
{
final String name = header.getId();
if (name.equals("name"))
{
return ((User)object).name;
}
if (name.equals("email"))
{
return ((User)object).email;
}
return "";
}
});
}
private void addUser(List data, int id, String name, String email)
{
User user = new User();
user.setId(id);
user.setName(name);
user.setEmail(email);
data.add(user);
}
private class User implements Serializable
{
private int id;
private String name;
private String email;
/**
* Gets email.
* @return email
*/
public final String getEmail()
{
return email;
}
/**
* Sets email.
* @param email email
*/
public final void setEmail(String email)
{
this.email = email;
}
/**
* Gets id.
* @return id
*/
public final int getId()
{
return id;
}
/**
* Sets id.
* @param id id
*/
public final void setId(int id)
{
this.id = id;
}
/**
* Gets name.
* @return name
*/
public final String getName()
{
return name;
}
/**
* Sets name.
* @param name name
*/
public final void setName(String name)
{
this.name = name;
}
}
}