Author: abelevich
Date: 2010-12-24 13:15:26 -0500 (Fri, 24 Dec 2010)
New Revision: 20794
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/SortingFilteringRowsRenderer.java
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.js
trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ExtendedDataTableRendererTest.java
Log:
re-fix RF-9931
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/SortingFilteringRowsRenderer.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/SortingFilteringRowsRenderer.java 2010-12-24
16:57:48 UTC (rev 20793)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/SortingFilteringRowsRenderer.java 2010-12-24
18:15:26 UTC (rev 20794)
@@ -26,6 +26,7 @@
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Map;
+import java.util.Set;
import javax.el.ELContext;
import javax.el.ELException;
@@ -94,37 +95,35 @@
}
protected void decodeSorting(FacesContext context, UIDataTableBase dataTableBase,
String value) {
-
- Collection<Object> sortPriority = dataTableBase.getSortPriority();
-
- if(sortPriority == null) {
- sortPriority = new LinkedHashSet<Object>();
- }
-
+ Set<Object> sortPriority = new LinkedHashSet<Object>();
+
String[] values = value.split(SEPARATOR);
- if (Boolean.parseBoolean(values[2]) ||
SortMode.single.equals(dataTableBase.getSortMode())) {
+ String columnId = values[0];
+ String sortOrder = values[1];
+ boolean isClear = Boolean.parseBoolean(values[2]);
+
+ if (isClear || SortMode.single.equals(dataTableBase.getSortMode())) {
for (Iterator<UIComponent> iterator = dataTableBase.columns();
iterator.hasNext();) {
UIComponent column = iterator.next();
- if (values[0].equals(column.getId())) {
- updateSortOrder(context, column, values[1]);
- sortPriority.add(values[0]);
+ if (columnId.equals(column.getId())) {
+ updateSortOrder(context, column, sortOrder);
+ sortPriority.add(columnId);
} else {
updateAttribute(context, column, SORT_ORDER_STRING,
SortOrder.unsorted);
}
}
} else {
- updateSortOrder(context, dataTableBase.findComponent(values[0]), values[1]);
- sortPriority = dataTableBase.getSortPriority();
- if (sortPriority != null) {
- sortPriority.remove(values[0]);
- sortPriority.addAll(sortPriority);
+ updateSortOrder(context, dataTableBase.findComponent(columnId), sortOrder);
+ Collection<?> priority = dataTableBase.getSortPriority();
+ if (priority != null) {
+ priority.remove(columnId);
+ sortPriority.addAll(priority);
}
- sortPriority.add(values[0]);
+ sortPriority.add(columnId);
}
-
updateAttribute(context, dataTableBase, SORT_PRIORITY_STRING, sortPriority);
-
context.getPartialViewContext().getRenderIds().add(dataTableBase.getClientId(context)); //
TODO Use partial re-rendering here.
- }
+
context.getPartialViewContext().getRenderIds().add(dataTableBase.getClientId(context));
+ }
private void updateSortOrder(FacesContext context, UIComponent component, String
value) {
SortOrder sortOrder = SortOrder.ascending;
Modified:
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.js
===================================================================
---
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.js 2010-12-24
16:57:48 UTC (rev 20793)
+++
trunk/ui/iteration/ui/src/main/resources/META-INF/resources/org.richfaces/datatable.js 2010-12-24
18:15:26 UTC (rev 20794)
@@ -27,7 +27,7 @@
var createParameters = function(type, id, arg1, arg2) {
var parameters = {};
var key = this.id + type;
- parameters[key] = ((id || "") + ":" + (arg1 ||
"") + ":" + (arg2 || true));
+ parameters[key] = (id + ":" + (arg1 || "") + ":"
+ arg2);
var eventOptions = this.options.ajaxEventOption;
for (key in eventOptions) {
Modified:
trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ExtendedDataTableRendererTest.java
===================================================================
---
trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ExtendedDataTableRendererTest.java 2010-12-24
16:57:48 UTC (rev 20793)
+++
trunk/ui/iteration/ui/src/test/java/org/richfaces/renderkit/ExtendedDataTableRendererTest.java 2010-12-24
18:15:26 UTC (rev 20794)
@@ -39,7 +39,6 @@
import org.jboss.test.faces.htmlunit.HtmlUnitEnvironment;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.richfaces.component.AbstractExtendedDataTable;
import org.richfaces.component.SortOrder;
@@ -278,7 +277,6 @@
facesRequest.release();
}
- @Ignore
@Test
public final void testSortingWithoutClean() throws IOException {
FacesRequest facesRequest = startFacesRequest();
Show replies by date