You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by rf...@apache.org on 2010/02/11 00:09:54 UTC
svn commit: r908734 - in /lenya/branches/BRANCH_2_1_X/src/modules-core:
administration/usecases/siteOverview.jx
sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java
Author: rfrovarp
Date: Wed Feb 10 23:09:46 2010
New Revision: 908734
URL: http://svn.apache.org/viewvc?rev=908734&view=rev
Log:
Finally finish bug 44564. Will now sort file size numerically
Modified:
lenya/branches/BRANCH_2_1_X/src/modules-core/administration/usecases/siteOverview.jx
lenya/branches/BRANCH_2_1_X/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java
Modified: lenya/branches/BRANCH_2_1_X/src/modules-core/administration/usecases/siteOverview.jx
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules-core/administration/usecases/siteOverview.jx?rev=908734&r1=908733&r2=908734&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules-core/administration/usecases/siteOverview.jx (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules-core/administration/usecases/siteOverview.jx Wed Feb 10 23:09:46 2010
@@ -33,6 +33,14 @@
<input type="hidden" name="lenya.usecase" value="${usecase.getName()}"/>
<input type="hidden" name="sort" value="${key}"/>
<input type="hidden" name="order" value="${order}"/>
+ <jx:choose>
+ <jx:when test="${usecase.getParameter('numericTypes').contains(key)}">
+ <input type="hidden" name="type" value="numeric"/>
+ </jx:when>
+ <jx:otherwise>
+ <input type="hidden" name="type" value="alpha"/>
+ </jx:otherwise>
+ </jx:choose>
<jx:forEach var="filter" items="${usecase.getParameter('filters')}">
<input type="hidden" name="${filter}" value="${usecase.getParameter(filter)}"/>
</jx:forEach>
@@ -136,4 +144,4 @@
</div>
</page:body>
-</page:page>
\ No newline at end of file
+</page:page>
Modified: lenya/branches/BRANCH_2_1_X/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java?rev=908734&r1=908733&r2=908734&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/SiteOverview.java Wed Feb 10 23:09:46 2010
@@ -90,6 +90,12 @@
protected static final String DESC = "desc";
protected static final String ASC = "asc";
+
+ protected static final String TYPE = "type";
+ protected static final String ALPHA = "alpha";
+ protected static final String NUMERIC = "numeric";
+ protected static final String[] NUMERIC_KEYS = { KEY_CONTENT_LENGTH };
+ protected static final String PARAMETER_NUMERIC_TYPES = "numericTypes";
protected void prepareView() throws Exception {
super.prepareView();
@@ -107,10 +113,13 @@
List filteredDocuments = filter(entries);
sort(filteredDocuments);
+
setParameter(DOCUMENTS, filteredDocuments);
setParameter(PARAMETER_KEYS, Arrays.asList(KEYS));
+ setParameter(PARAMETER_NUMERIC_TYPES, Arrays.asList(NUMERIC_KEYS));
+
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -186,8 +195,9 @@
protected void sort(List documents) {
String sort = getParameterAsString(SORT);
String order = getParameterAsString(ORDER, ASC);
+ String type = getParameterAsString(TYPE,ALPHA);
if (sort != null) {
- Comparator comparator = new EntryComparator(sort, order);
+ Comparator comparator = new EntryComparator(sort, order,type);
Collections.sort(documents, comparator);
}
}
@@ -258,14 +268,26 @@
private String key;
private String order;
+ private String type;
/**
* @param key The key to compare.
* @param order The order string ({@link SiteOverview#ASC} or {@link SiteOverview#DESC}).
*/
public EntryComparator(String key, String order) {
- this.key = key;
- this.order = order;
+ this(key, order, ALPHA);
+ }
+
+ /**
+ * @param key The key to compare.
+ * @param order The order string ({@link SiteOverview#ASC} or {@link SiteOverview#DESC}).
+ * @param type The type ({@link SiteOverview#ALPHA} or {@link SiteOverview#NUMERIC}).
+ */
+ public EntryComparator(String key, String order, String type)
+ {
+ this.key = key;
+ this.order = order;
+ this.type = type;
}
/**
@@ -274,17 +296,25 @@
public int compare(Object arg0, Object arg1) {
Entry e1 = (Entry) arg0;
Entry e2 = (Entry) arg1;
-
- String value1 = e1.getValue(this.key);
- String value2 = e2.getValue(this.key);
- if (this.order.equals(DESC))
- return value2.compareTo(value1);
- else
- return value1.compareTo(value2);
+
+ if(type.equals(NUMERIC)) {
+ Double value1 = e1.getDouble(this.key);
+ Double value2 = e2.getDouble(this.key);
+ if (this.order.equals(DESC))
+ return value2.compareTo(value1);
+ else
+ return value1.compareTo(value2);
+ } else {
+ String value1 = e1.getValue(this.key);
+ String value2 = e2.getValue(this.key);
+ if (this.order.equals(DESC))
+ return value2.compareTo(value1);
+ else
+ return value1.compareTo(value2);
+ }
}
}
-
/**
* Stores document-related information.
*/
@@ -313,6 +343,10 @@
public String getValue(String key) {
return (String) this.values.get(key);
}
+
+ public Double getDouble(String key) {
+ return Double.valueOf(getValue(key));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org