[richfaces-svn-commits] JBoss Rich Faces SVN: r5965 - in trunk/framework: impl/src/main/java/org/richfaces/model/impl/expressive and 1 other directory.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Feb 8 13:52:58 EST 2008


Author: konstantin.mishin
Date: 2008-02-08 13:52:58 -0500 (Fri, 08 Feb 2008)
New Revision: 5965

Added:
   trunk/framework/api/src/main/java/org/richfaces/model/ExtendedFilterField.java
Modified:
   trunk/framework/impl/src/main/java/org/richfaces/model/impl/expressive/WrappedBeanFilter.java
Log:
RF-1741

Added: trunk/framework/api/src/main/java/org/richfaces/model/ExtendedFilterField.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/model/ExtendedFilterField.java	                        (rev 0)
+++ trunk/framework/api/src/main/java/org/richfaces/model/ExtendedFilterField.java	2008-02-08 18:52:58 UTC (rev 5965)
@@ -0,0 +1,33 @@
+/**
+ * 
+ */
+package org.richfaces.model;
+
+import javax.el.Expression;
+
+/**
+ * @author Konstantin Mishin
+ *
+ */
+public class ExtendedFilterField extends FilterField{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 5443560922389498666L;
+	
+	private String filterValue;
+
+	public ExtendedFilterField(Expression expression, String filterValue) {
+		super(expression);
+		this.filterValue = filterValue;
+	}
+
+	public ExtendedFilterField(Expression expression) {
+		this(expression, "");
+	}
+	
+	public String getFilterValue() {
+		return filterValue;
+	}
+}

Modified: trunk/framework/impl/src/main/java/org/richfaces/model/impl/expressive/WrappedBeanFilter.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/model/impl/expressive/WrappedBeanFilter.java	2008-02-08 18:12:41 UTC (rev 5964)
+++ trunk/framework/impl/src/main/java/org/richfaces/model/impl/expressive/WrappedBeanFilter.java	2008-02-08 18:52:58 UTC (rev 5965)
@@ -5,6 +5,7 @@
 
 import java.util.List;
 
+import org.richfaces.model.ExtendedFilterField;
 import org.richfaces.model.FilterField;
 
 /**
@@ -21,9 +22,17 @@
 
 	public boolean accept(JavaBeanWrapper wrapper) {
 		for (FilterField filterField : filterFields) {
-			Object property = wrapper.getProperty(filterField.getExpression().getExpressionString());
-			if(!((Boolean)property).booleanValue()) {
-				return false;
+			if (filterField instanceof ExtendedFilterField) {
+				Object property = wrapper.getProperty(filterField.getExpression().getExpressionString());
+				final String filterValue = ((ExtendedFilterField)filterField).getFilterValue();
+				if(!(filterValue == null) && !property.toString().startsWith(filterValue)) {
+					return false;
+				}				
+			} else {
+				Object property = wrapper.getProperty(filterField.getExpression().getExpressionString());
+				if(!((Boolean)property).booleanValue()) {
+					return false;
+				}
 			}
 		}
 		return true;




More information about the richfaces-svn-commits mailing list