[richfaces-svn-commits] JBoss Rich Faces SVN: r6013 - in trunk/ui: dataTable/src/main/java/org/richfaces/component and 2 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Mon Feb 11 12:37:55 EST 2008


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
+		
+	}
 }




More information about the richfaces-svn-commits mailing list