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;
Show replies by date