diff options
author | Aleksi Hietanen <aleksi@vaadin.com> | 2017-05-15 13:49:56 +0300 |
---|---|---|
committer | Henri Sara <henri.sara@gmail.com> | 2017-05-16 15:35:17 +0300 |
commit | 75be04cfb516da4f395a18713a7549c0276c1714 (patch) | |
tree | bcb6408a639c6125b81242aedf4d0a95b0a4c26d /server | |
parent | b153ba2f8b8539df45ace39864fd0db4a4c26e4d (diff) | |
download | vaadin-framework-75be04cfb516da4f395a18713a7549c0276c1714.tar.gz vaadin-framework-75be04cfb516da4f395a18713a7549c0276c1714.zip |
Add ItemCollapseAllowedProvider interface
Diffstat (limited to 'server')
4 files changed, 52 insertions, 7 deletions
diff --git a/server/src/main/java/com/vaadin/data/provider/HierarchicalDataCommunicator.java b/server/src/main/java/com/vaadin/data/provider/HierarchicalDataCommunicator.java index df2a11c200..ce6f7db13e 100644 --- a/server/src/main/java/com/vaadin/data/provider/HierarchicalDataCommunicator.java +++ b/server/src/main/java/com/vaadin/data/provider/HierarchicalDataCommunicator.java @@ -31,10 +31,10 @@ import com.vaadin.data.TreeData; import com.vaadin.data.provider.HierarchyMapper.TreeLevelQuery; import com.vaadin.data.provider.HierarchyMapper.TreeNode; import com.vaadin.server.SerializableConsumer; -import com.vaadin.server.SerializablePredicate; import com.vaadin.shared.Range; import com.vaadin.shared.data.HierarchicalDataCommunicatorConstants; import com.vaadin.shared.extension.datacommunicator.HierarchicalDataCommunicatorState; +import com.vaadin.ui.ItemCollapseAllowedProvider; import elemental.json.Json; import elemental.json.JsonArray; @@ -66,7 +66,7 @@ public class HierarchicalDataCommunicator<T> extends DataCommunicator<T> { /** * Collapse allowed provider used to allow/disallow collapsing nodes. */ - private SerializablePredicate<T> itemCollapseAllowedProvider = t -> true; + private ItemCollapseAllowedProvider<T> itemCollapseAllowedProvider = t -> true; /** * The captured client side cache size. @@ -521,7 +521,7 @@ public class HierarchicalDataCommunicator<T> extends DataCommunicator<T> { * the item collapse allowed provider, not {@code null} */ public void setItemCollapseAllowedProvider( - SerializablePredicate<T> provider) { + ItemCollapseAllowedProvider<T> provider) { Objects.requireNonNull(provider, "Provider can't be null"); itemCollapseAllowedProvider = provider; diff --git a/server/src/main/java/com/vaadin/ui/ItemCollapseAllowedProvider.java b/server/src/main/java/com/vaadin/ui/ItemCollapseAllowedProvider.java new file mode 100644 index 0000000000..2ec0ad20e3 --- /dev/null +++ b/server/src/main/java/com/vaadin/ui/ItemCollapseAllowedProvider.java @@ -0,0 +1,46 @@ +/* + * Copyright 2000-2016 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.ui; + +import com.vaadin.server.SerializablePredicate; + +/** + * A callback interface for resolving whether client-side collapsing should be + * allowed for an item in a listing component that displays hierarchical data, + * such as {@link TreeGrid}. + * + * @author Vaadin Ltd + * @since 8.1 + * + * @see TreeGrid#setItemCollapseAllowedProvider(ItemCollapseAllowedProvider) + * + * @param <T> + * item data type + */ +@FunctionalInterface +public interface ItemCollapseAllowedProvider<T> extends SerializablePredicate<T> { + + /** + * Returns whether collapsing is allowed for the given item. + * + * @param item + * the item to test + * @return {@code true} if collapse is allowed for the given item, + * {@code false} otherwise + */ + @Override + boolean test(T item); +} diff --git a/server/src/main/java/com/vaadin/ui/Tree.java b/server/src/main/java/com/vaadin/ui/Tree.java index 9f30c010db..7b8fae59ca 100644 --- a/server/src/main/java/com/vaadin/ui/Tree.java +++ b/server/src/main/java/com/vaadin/ui/Tree.java @@ -470,7 +470,7 @@ public class Tree<T> extends Composite * the item collapse allowed provider, not {@code null} */ public void setItemCollapseAllowedProvider( - SerializablePredicate<T> provider) { + ItemCollapseAllowedProvider<T> provider) { treeGrid.setItemCollapseAllowedProvider(provider); } diff --git a/server/src/main/java/com/vaadin/ui/TreeGrid.java b/server/src/main/java/com/vaadin/ui/TreeGrid.java index f24e5ca9ec..54e8e10a6c 100644 --- a/server/src/main/java/com/vaadin/ui/TreeGrid.java +++ b/server/src/main/java/com/vaadin/ui/TreeGrid.java @@ -43,7 +43,6 @@ import com.vaadin.event.CollapseEvent; import com.vaadin.event.CollapseEvent.CollapseListener; import com.vaadin.event.ExpandEvent; import com.vaadin.event.ExpandEvent.ExpandListener; -import com.vaadin.server.SerializablePredicate; import com.vaadin.shared.Registration; import com.vaadin.shared.ui.treegrid.FocusParentRpc; import com.vaadin.shared.ui.treegrid.FocusRpc; @@ -324,10 +323,10 @@ public class TreeGrid<T> extends Grid<T> * @param provider * the item collapse allowed provider, not {@code null} * - * @see HierarchicalDataCommunicator#setItemCollapseAllowedProvider(SerializablePredicate) + * @see HierarchicalDataCommunicator#setItemCollapseAllowedProvider(ItemCollapseAllowedProvider) */ public void setItemCollapseAllowedProvider( - SerializablePredicate<T> provider) { + ItemCollapseAllowedProvider<T> provider) { getDataCommunicator().setItemCollapseAllowedProvider(provider); } |