]> source.dussan.org Git - vaadin-framework.git/commitdiff
#6286 Container filtering improvements: also pass item id to passesFilter()
authorHenri Sara <henri.sara@itmill.com>
Tue, 15 Mar 2011 13:47:18 +0000 (13:47 +0000)
committerHenri Sara <henri.sara@itmill.com>
Tue, 15 Mar 2011 13:47:18 +0000 (13:47 +0000)
svn changeset:17788/svn branch:6.6

src/com/vaadin/data/Container.java
src/com/vaadin/data/util/AbstractInMemoryContainer.java
src/com/vaadin/data/util/filter/And.java
src/com/vaadin/data/util/filter/Not.java
src/com/vaadin/data/util/filter/Or.java
src/com/vaadin/data/util/filter/SimpleStringFilter.java

index 68219f24542c20c56eacfc023e4c41c853edd747..23cb0248c26062c3f10df302d6c6e9869abe5944 100644 (file)
@@ -660,12 +660,16 @@ public interface Container extends Serializable {
         /**
          * Check if an item passes the filter (in-memory filtering).
          * 
+         * @param itemId
+         *            identifier of the item being filtered; may be null when
+         *            the item is being added to the container
          * @param item
+         *            the item being filtered
          * @return true if the item is accepted by this filter
          * @throws UnsupportedOperationException
          *             if the filter cannot be used for in-memory filtering
          */
-        public boolean passesFilter(Item item)
+        public boolean passesFilter(Object itemId, Item item)
                 throws UnsupportedOperationException;
 
         /**
index df0e860b24932f24d96fbb554c8729b2aee46545..548f30f98427b458f64c3fbf8452928b65209cb3 100644 (file)
@@ -366,7 +366,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
         final Iterator<Filter> i = getFilters().iterator();
         while (i.hasNext()) {
             final Filter f = i.next();
-            if (!f.passesFilter(item)) {
+            if (!f.passesFilter(itemId, item)) {
                 return false;
             }
         }
index ec1a2bf8c6555c3b6b6e1f17f00c67d846a498c6..253a4205489f3cf123a75060662a0fc2d66cfb68 100644 (file)
@@ -27,9 +27,10 @@ public class And extends AbstractJunctionFilter implements Filter {
         super(filters);
     }
 
-    public boolean passesFilter(Item item) throws UnsupportedFilterException {
+    public boolean passesFilter(Object itemId, Item item)
+            throws UnsupportedFilterException {
         for (Filter filter : getFilters()) {
-            if (!filter.passesFilter(item)) {
+            if (!filter.passesFilter(itemId, item)) {
                 return false;
             }
         }
index 0e2ec4c55e96879e56f4cc83871bb01953fbbcc5..fd4717c8657aaedb60f6a7c13f6672fbc39e8cb6 100644 (file)
@@ -33,8 +33,9 @@ public class Not implements Filter {
         return filter;
     }
 
-    public boolean passesFilter(Item item) throws UnsupportedOperationException {
-        return !filter.passesFilter(item);
+    public boolean passesFilter(Object itemId, Item item)
+            throws UnsupportedOperationException {
+        return !filter.passesFilter(itemId, item);
     }
 
     /**
index c4a3684e48fc15ad6ac5f228b1abb83bf1e6f148..3da0de2c86b3563dfa577e48555100ddc7eda2c2 100644 (file)
@@ -27,9 +27,10 @@ public class Or extends AbstractJunctionFilter implements Filter {
         super(filters);
     }
 
-    public boolean passesFilter(Item item) throws UnsupportedFilterException {
+    public boolean passesFilter(Object itemId, Item item)
+            throws UnsupportedFilterException {
         for (Filter filter : getFilters()) {
-            if (filter.passesFilter(item)) {
+            if (filter.passesFilter(itemId, item)) {
                 return true;
             }
         }
index 3fb81c56412626f21969decfb3022432bf48c378..b3801415d3b01ee16882136d549a500a7de32a01 100644 (file)
@@ -36,7 +36,7 @@ public class SimpleStringFilter implements Filter {
         this.onlyMatchPrefix = onlyMatchPrefix;
     }
 
-    public boolean passesFilter(Item item) {
+    public boolean passesFilter(Object itemId, Item item) {
         final Property p = item.getItemProperty(propertyId);
         if (p == null || p.toString() == null) {
             return false;