From 31cc212c35b4817d1f067093f9305877fd14cf37 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Wed, 24 Apr 2013 13:17:35 +0300 Subject: [PATCH] Replaced Filterable.hasContainerFilters with getContainerFilters (#11234) Change-Id: Ie0b05e55c1d8fc8d10d073c508b112da740c3333 --- server/src/com/vaadin/data/Container.java | 7 +++++-- .../data/util/AbstractBeanContainer.java | 15 +++++++++++++++ .../data/util/AbstractInMemoryContainer.java | 16 +++++++++++++--- .../vaadin/data/util/IndexedContainer.java | 14 ++++++++++++++ .../data/util/sqlcontainer/SQLContainer.java | 19 ++++++++++++++++--- server/src/com/vaadin/ui/Tree.java | 4 ++-- .../data/util/AbstractContainerTest.java | 18 +++++++++++------- 7 files changed, 76 insertions(+), 17 deletions(-) diff --git a/server/src/com/vaadin/data/Container.java b/server/src/com/vaadin/data/Container.java index 4db346a015..e93db52a35 100644 --- a/server/src/com/vaadin/data/Container.java +++ b/server/src/com/vaadin/data/Container.java @@ -954,11 +954,14 @@ public interface Container extends Serializable { public void removeAllContainerFilters(); /** - * Returns true if any filters have been applied to the container + * Returns the filters which have been applied to the container * + * @return A collection of filters which have been applied to the + * container. An empty collection if no filters have been + * applied. * @since 7.1 */ - public boolean hasContainerFilters(); + public Collection getContainerFilters(); } /** diff --git a/server/src/com/vaadin/data/util/AbstractBeanContainer.java b/server/src/com/vaadin/data/util/AbstractBeanContainer.java index c587cf5163..35403d6419 100644 --- a/server/src/com/vaadin/data/util/AbstractBeanContainer.java +++ b/server/src/com/vaadin/data/util/AbstractBeanContainer.java @@ -385,11 +385,26 @@ public abstract class AbstractBeanContainer extends removeFilter(filter); } + /* + * (non-Javadoc) + * + * @see com.vaadin.data.util.AbstractInMemoryContainer#hasContainerFilters() + */ @Override public boolean hasContainerFilters() { return super.hasContainerFilters(); } + /* + * (non-Javadoc) + * + * @see com.vaadin.data.util.AbstractInMemoryContainer#getContainerFilters() + */ + @Override + public Collection getContainerFilters() { + return super.getContainerFilters(); + } + /** * Make this container listen to the given property provided it notifies * when its value changes. diff --git a/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java b/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java index 940f2302f5..84304431bc 100644 --- a/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java +++ b/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java @@ -501,12 +501,22 @@ public abstract class AbstractInMemoryContainer getContainerFilters() { + return Collections.unmodifiableCollection(filters); } /** diff --git a/server/src/com/vaadin/data/util/IndexedContainer.java b/server/src/com/vaadin/data/util/IndexedContainer.java index 31f37ac277..d7bf70caf6 100644 --- a/server/src/com/vaadin/data/util/IndexedContainer.java +++ b/server/src/com/vaadin/data/util/IndexedContainer.java @@ -1192,9 +1192,23 @@ public class IndexedContainer extends removeFilter(filter); } + /* + * (non-Javadoc) + * + * @see com.vaadin.data.util.AbstractInMemoryContainer#getContainerFilters() + */ @Override public boolean hasContainerFilters() { return super.hasContainerFilters(); } + /* + * (non-Javadoc) + * + * @see com.vaadin.data.util.AbstractInMemoryContainer#getContainerFilters() + */ + @Override + public Collection getContainerFilters() { + return super.getContainerFilters(); + } } diff --git a/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java b/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java index f8efdf0d4f..987466cdb7 100644 --- a/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java +++ b/server/src/com/vaadin/data/util/sqlcontainer/SQLContainer.java @@ -597,11 +597,23 @@ public class SQLContainer implements Container, Container.Filterable, } /** - * {@inheritDoc} + * Returns true if any filters have been applied to the container. + * + * @return true if the container has filters applied, false otherwise + * @since 7.1 */ - @Override public boolean hasContainerFilters() { - return !filters.isEmpty(); + return !getContainerFilters().isEmpty(); + } + + /* + * (non-Javadoc) + * + * @see com.vaadin.data.Container.Filterable#getContainerFilters() + */ + @Override + public Collection getContainerFilters() { + return Collections.unmodifiableCollection(filters); } /**********************************************/ @@ -1825,4 +1837,5 @@ public class SQLContainer implements Container, Container.Filterable, private static final Logger getLogger() { return Logger.getLogger(SQLContainer.class.getName()); } + } diff --git a/server/src/com/vaadin/ui/Tree.java b/server/src/com/vaadin/ui/Tree.java index a5c3819edd..15175b5a8b 100644 --- a/server/src/com/vaadin/ui/Tree.java +++ b/server/src/com/vaadin/ui/Tree.java @@ -939,8 +939,8 @@ public class Tree extends AbstractSelect implements Container.Hierarchical, com.vaadin.data.Container.ItemSetChangeEvent event) { super.containerItemSetChange(event); if (getContainerDataSource() instanceof Filterable) { - boolean hasFilters = ((Filterable) getContainerDataSource()) - .hasContainerFilters(); + boolean hasFilters = !((Filterable) getContainerDataSource()) + .getContainerFilters().isEmpty(); if (!hasFilters) { /* * If Container is not filtered then the itemsetchange is caused diff --git a/server/tests/src/com/vaadin/data/util/AbstractContainerTest.java b/server/tests/src/com/vaadin/data/util/AbstractContainerTest.java index 64db805623..81c90ba07b 100644 --- a/server/tests/src/com/vaadin/data/util/AbstractContainerTest.java +++ b/server/tests/src/com/vaadin/data/util/AbstractContainerTest.java @@ -314,10 +314,12 @@ public abstract class AbstractContainerTest extends TestCase { initializeContainer(container); // Filter by "contains ab" - container.addContainerFilter(new SimpleStringFilter( - FULLY_QUALIFIED_NAME, "ab", false, false)); + SimpleStringFilter filter1 = new SimpleStringFilter( + FULLY_QUALIFIED_NAME, "ab", false, false); + container.addContainerFilter(filter1); - assertTrue(container.hasContainerFilters()); + assertTrue(container.getContainerFilters().size() == 1); + assertEquals(filter1, container.getContainerFilters().iterator().next()); validateContainer(container, "com.vaadin.data.BufferedValidatable", "com.vaadin.ui.TabSheet", @@ -327,12 +329,14 @@ public abstract class AbstractContainerTest extends TestCase { // Filter by "contains da" (reversed as ad here) container.removeAllContainerFilters(); - assertFalse(container.hasContainerFilters()); + assertTrue(container.getContainerFilters().isEmpty()); - container.addContainerFilter(new SimpleStringFilter( - REVERSE_FULLY_QUALIFIED_NAME, "ad", false, false)); + SimpleStringFilter filter2 = new SimpleStringFilter( + REVERSE_FULLY_QUALIFIED_NAME, "ad", false, false); + container.addContainerFilter(filter2); - assertTrue(container.hasContainerFilters()); + assertTrue(container.getContainerFilters().size() == 1); + assertEquals(filter2, container.getContainerFilters().iterator().next()); validateContainer(container, "com.vaadin.data.Buffered", "com.vaadin.server.ComponentSizeValidator", -- 2.39.5