Author: abelevich
Date: 2007-05-28 14:13:31 -0400 (Mon, 28 May 2007)
New Revision: 908
Modified:
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/datagrid/model/Channel.java
Log:
Modified:
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/datagrid/model/Channel.java
===================================================================
---
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/datagrid/model/Channel.java 2007-05-28
18:13:23 UTC (rev 907)
+++
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/datagrid/model/Channel.java 2007-05-28
18:13:31 UTC (rev 908)
@@ -17,9 +17,13 @@
import java.util.List;
import java.util.Map;
+import org.richfaces.model.SortOrder;
+
+
/**
* @author Maksim Kaszynski
+ * @modified by Anton Belevich
*
*/
public class Channel {
@@ -86,7 +90,43 @@
};
};
+ static final Comparator<Issue> byKeyAsc = new Comparator<Issue>() {
+ public int compare(Issue o1, Issue o2) {
+ return o1.getKey().compareTo(o2.getKey());
+ };
+ };
+ static final Comparator<Issue> byKeyDesc = new Comparator<Issue>() {
+ public int compare(Issue o1, Issue o2) {
+ return -byKeyAsc.compare(o1, o2);
+ };
+ };
+
+ static final Comparator<Issue> byResolutionDesc = new Comparator<Issue>() {
+ public int compare(Issue o1, Issue o2) {
+ return -byResolutionAsc.compare(o1, o2);
+ };
+ };
+
+ static final Comparator<Issue> byResolutionAsc = new Comparator<Issue>() {
+ public int compare(Issue o1, Issue o2) {
+ return o1.getResolution().compareTo(o2.getResolution());
+ };
+ };
+
+ static final Comparator<Issue> bySummaryDesc = new Comparator<Issue>() {
+ public int compare(Issue o1, Issue o2) {
+ return -bySummaryAsc.compare(o1, o2);
+ };
+ };
+
+ static final Comparator<Issue> bySummaryAsc = new Comparator<Issue>() {
+ public int compare(Issue o1, Issue o2) {
+ return o1.getSummary().compareTo(o2.getSummary());
+ };
+ };
+
+
private List<Issue> issues = new ArrayList<Issue>();
private String title;
private String description;
@@ -109,22 +149,22 @@
* @param sortOrder
* @return
*/
-// public List <Issue> executeQuery(int startRow, int endRow, SortOrder sortOrder)
{
-// System.out.println("Channel.executeQuery()");
-// List <Issue> copy = getIssues();
-// if (sortOrder != null) {
-// copy = new ArrayList<Issue>(getIssues());
-// Comparator<Issue> comparator = createComparator(sortOrder);
-// if (comparator != null) {
-// Collections.sort(copy, comparator);
-// }
-// }
-// List <Issue> issuz = new ArrayList<Issue>(endRow - startRow + 1);
-// for(int i = startRow; i < endRow; i++ ) {
-// issuz.add(copy.get(i));
-// }
-// return issuz;
-// }
+ public List <Issue> executeQuery(int startRow, int endRow, SortOrder sortOrder) {
+ System.out.println("Channel.executeQuery()");
+ List <Issue> copy = getIssues();
+ if (sortOrder != null) {
+ copy = new ArrayList<Issue>(getIssues());
+ Comparator<Issue> comparator = createComparator(sortOrder);
+ if (comparator != null) {
+ Collections.sort(copy, comparator);
+ }
+ }
+ List <Issue> issuz = new ArrayList<Issue>(endRow - startRow + 1);
+ for(int i = startRow; i < endRow; i++ ) {
+ issuz.add(copy.get(i));
+ }
+ return issuz;
+ }
/**
@@ -205,27 +245,33 @@
this.index = index;
}
-// protected Comparator <Issue> createComparator(SortOrder sortOrder) {
-// String prop = sortOrder.getSortField();
-// boolean asc = sortOrder.isAscending();
-//
-// if ("priority".equals(prop)) {
-// return asc ? byPriAsc : byPriDesc;
-// } else if ("assignee".equals(prop)) {
-// return asc ? byAssigneeAsc : byAssigneeDesc;
-// } else if ("reporter".equals(prop)) {
-// return asc ? byReporterAsc : byReporterDesc;
-// } else if ("id".equals(prop)) {
-// return asc ? byIdAsc : byIdDesc;
-//
-// } else if ("status".equals(prop)) {
-// return asc ? byStatusAsc : byStatusDesc;
-//
-// }
-//
-// return null;
-// }
-//
+
+ protected Comparator <Issue> createComparator(SortOrder sortOrder) {
+ int prop = sortOrder.getSortColumn();
+ boolean asc = sortOrder.isAscending();
+
+ switch (prop) {
+ case 0:
+ return asc ? byIdAsc : byIdDesc;
+ case 1:
+ return asc ? byKeyAsc : byKeyDesc;
+ case 2:
+ return asc ? bySummaryAsc : bySummaryDesc;
+ case 3:
+ return asc ? byAssigneeAsc : byAssigneeDesc;
+ case 4:
+ return asc ? byStatusAsc : byStatusDesc;
+ case 5:
+ return asc ? byReporterAsc : byReporterDesc;
+ case 6:
+ return asc ? byPriAsc: byPriDesc;
+ case 7:
+ return asc ? byResolutionAsc : byResolutionDesc;
+ }
+
+ return null;
+ }
+
public Issue findById(Integer id) {
return getIndex().get(id);
}
Show replies by date