Author: konstantin.mishin
Date: 2008-02-11 12:37:55 -0500 (Mon, 11 Feb 2008)
New Revision: 6013
Modified:
trunk/ui/dataTable/src/main/config/component/column.xml
trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
trunk/ui/scrollableDataTable/src/test/java/org/richfaces/component/html/MockColumns.java
Log:
RF-1741
Modified: trunk/ui/dataTable/src/main/config/component/column.xml
===================================================================
--- trunk/ui/dataTable/src/main/config/component/column.xml 2008-02-11 17:35:41 UTC (rev
6012)
+++ trunk/ui/dataTable/src/main/config/component/column.xml 2008-02-11 17:37:55 UTC (rev
6013)
@@ -85,6 +85,11 @@
<description>SortOrder is an enumeration of the possible sort
orderings.</description>
<defaultvalue>Ordering.UNSORTED</defaultvalue>
</property>
+ <property>
+ <name>comparator</name>
+ <classname>java.util.Comparator</classname>
+ <description></description>
+ </property>
<property elonly="true">
<name>filterExpression</name>
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2008-02-11
17:35:41 UTC (rev 6012)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2008-02-11
17:37:55 UTC (rev 6013)
@@ -175,23 +175,24 @@
UIComponent component = iterator.next();
if (component instanceof org.richfaces.component.UIColumn) {
Column column = (Column) component;
+ MethodExpression filterMethod = column.getFilterMethod();
ValueExpression filterExpression =
component.getValueExpression("filterExpression");
- if (filterExpression != null) {
- filterFields.add(new FilterField(filterExpression));
- }
- MethodExpression filterMethod = column.getFilterMethod();
+ ValueExpression filterBy = component.getValueExpression("filterBy");
+ String filterValue = column.getFilterValue();
if (filterMethod != null) {
filterFields.add(new FilterField(filterMethod));
- }
- ValueExpression filterBy = component.getValueExpression("filterBy");
- String filterValue = (String)component.getAttributes().get("filterValue");
- if (filterBy != null) {
+ } else if (filterExpression != null) {
+ filterFields.add(new FilterField(filterExpression));
+ } else if (filterBy != null) {
filterFields.add(new ExtendedFilterField(filterBy, filterValue));
}
- if (column.isSortable() && !Ordering.UNSORTED.equals(column.getSortOrder()))
{
+ if (!Ordering.UNSORTED.equals(column.getSortOrder())) {
+ ValueExpression comparator = component.getValueExpression("comparator");
ValueExpression sortExpression =
component.getValueExpression("sortExpression");
- if (sortExpression != null) {
- sortFields.add(new SortField2(factory.createValueExpression(context,
sortExpression.getExpressionString(), Object.class), column.getSortOrder()));
+ if (comparator != null) {
+ sortFields.add(new SortField2(comparator, column.getSortOrder()));
+ } else if (sortExpression != null) {
+ sortFields.add(new SortField2(sortExpression, column.getSortOrder()));
}
}
}
Modified:
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
---
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2008-02-11
17:35:41 UTC (rev 6012)
+++
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2008-02-11
17:37:55 UTC (rev 6013)
@@ -173,7 +173,10 @@
if (facet != null) {
renderChild(context, facet);
}
- if (column.getValueExpression("filterBy") != null) {
+ if (column instanceof org.richfaces.component.UIColumn
+ && ((org.richfaces.component.UIColumn)column).getFilterMethod() == null
+ && column.getValueExpression("filterExpression") == null
+ && column.getValueExpression("filterBy") != null) {
UIComponent table = column.getParent();
String id = table.getClientId(context);
JSFunction ajaxFunction = AjaxRendererUtils.buildAjaxFunction(table, context);
Modified:
trunk/ui/scrollableDataTable/src/test/java/org/richfaces/component/html/MockColumns.java
===================================================================
---
trunk/ui/scrollableDataTable/src/test/java/org/richfaces/component/html/MockColumns.java 2008-02-11
17:35:41 UTC (rev 6012)
+++
trunk/ui/scrollableDataTable/src/test/java/org/richfaces/component/html/MockColumns.java 2008-02-11
17:37:55 UTC (rev 6013)
@@ -95,4 +95,14 @@
this.methodExpression = methodExpression;
}
+
+ public String getFilterValue() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void setFilterValue(String filterValue) {
+ // TODO Auto-generated method stub
+
+ }
}
Show replies by date