package org.appfuse.webapp.action; import java.io.Serializable; import static java.util.Collections.sort; import java.util.Comparator; import java.util.List; import org.apache.commons.beanutils.BeanComparator; import org.apache.commons.collections.comparators.ReverseComparator; import org.appfuse.service.UserManager; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.beans.factory.annotation.Autowired; @Component("userList") @Scope("session") public class UserList implements Serializable { private transient UserManager userManager; private String sortColumn = "id"; private boolean ascending = true; @Autowired public void setUserManager(UserManager userManager) { this.userManager = userManager; } public String getSortColumn() { return sortColumn; } public void setSortColumn(String sortColumn) { this.sortColumn = sortColumn; } public boolean isAscending() { return ascending; } public void setAscending(boolean ascending) { this.ascending = ascending; } public List getUsers() { List users = userManager.getUsers(); Comparator comparator; if (sortColumn.equalsIgnoreCase("birthday")) { comparator = new BeanDateComparator(sortColumn); } else { comparator = new BeanComparator(sortColumn); } if (!ascending) { comparator = new ReverseComparator(comparator); } sort(users, comparator); return users; } }