diff options
author | Henri Sara <henri.sara@itmill.com> | 2010-11-24 13:26:59 +0000 |
---|---|---|
committer | Henri Sara <henri.sara@itmill.com> | 2010-11-24 13:26:59 +0000 |
commit | 3f543a9585ec2f2f5622bb61b0474d2dac61806a (patch) | |
tree | a26dfa96c267548a81da230a5286a5e7f9bbe665 /src/com/vaadin/data/util/BeanItemContainer.java | |
parent | 1a8d370b2cf8a349e5b59112c92a149f67aaef3a (diff) | |
download | vaadin-framework-3f543a9585ec2f2f5622bb61b0474d2dac61806a.tar.gz vaadin-framework-3f543a9585ec2f2f5622bb61b0474d2dac61806a.zip |
#6049 do not re-filter BeanItemContainer if removing non-existing filters
svn changeset:16128/svn branch:6.5
Diffstat (limited to 'src/com/vaadin/data/util/BeanItemContainer.java')
-rw-r--r-- | src/com/vaadin/data/util/BeanItemContainer.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/com/vaadin/data/util/BeanItemContainer.java b/src/com/vaadin/data/util/BeanItemContainer.java index dcf7f0bf6f..abfb3bc9a9 100644 --- a/src/com/vaadin/data/util/BeanItemContainer.java +++ b/src/com/vaadin/data/util/BeanItemContainer.java @@ -786,18 +786,22 @@ public class BeanItemContainer<BT> implements Indexed, Sortable, Filterable, */ public void removeContainerFilters(Object propertyId) { if (!filters.isEmpty()) { + boolean filteringChanged = false; for (Iterator<Filter> iterator = filters.iterator(); iterator .hasNext();) { Filter f = iterator.next(); if (f.propertyId.equals(propertyId)) { iterator.remove(); + filteringChanged = true; } } - // stop listening to change events for the property - for (BeanItem<BT> item : beanToItem.values()) { - removeValueChangeListener(item, propertyId); + if (filteringChanged) { + // stop listening to change events for the property + for (BeanItem<BT> item : beanToItem.values()) { + removeValueChangeListener(item, propertyId); + } + filterAll(); } - filterAll(); } } |