diff options
author | Adam Wagner <wbadam@users.noreply.github.com> | 2017-07-27 14:09:28 +0300 |
---|---|---|
committer | Henri Sara <henri.sara@gmail.com> | 2017-07-27 14:09:28 +0300 |
commit | 42f7eba5e70c7ae2f3958f4e75e196dedfacc9c3 (patch) | |
tree | 9b571d45a43f01373f0dc47aa4e2e4a979f22eb1 /server | |
parent | 390fd31dc18d026a60a89e9b5cba040859cc3393 (diff) | |
download | vaadin-framework-42f7eba5e70c7ae2f3958f4e75e196dedfacc9c3.tar.gz vaadin-framework-42f7eba5e70c7ae2f3958f4e75e196dedfacc9c3.zip |
Add method to get parent in TreeData (#9701)
Diffstat (limited to 'server')
-rw-r--r-- | server/src/main/java/com/vaadin/data/TreeData.java | 19 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/data/provider/TreeDataProviderTest.java | 8 |
2 files changed, 27 insertions, 0 deletions
diff --git a/server/src/main/java/com/vaadin/data/TreeData.java b/server/src/main/java/com/vaadin/data/TreeData.java index bebf312614..1a5b0e4d3a 100644 --- a/server/src/main/java/com/vaadin/data/TreeData.java +++ b/server/src/main/java/com/vaadin/data/TreeData.java @@ -368,6 +368,25 @@ public class TreeData<T> implements Serializable { } /** + * Get the parent item for the given item. + * + * @param item + * the item for which to retrieve the parent item for + * @return parent item for the given item or {@code null} if the item is a + * root item. + * @throws IllegalArgumentException + * if the item does not exist in this structure + * @since 8.1.1 + */ + public T getParent(T item) { + if (!contains(item)) { + throw new IllegalArgumentException( + "Item '" + item + "' not in hierarchy"); + } + return itemToWrapperMap.get(item).getParent(); + } + + /** * Moves an item to become a child of the given parent item. The new parent * item must exist in the hierarchy. Setting the parent to {@code null} * makes the item a root item. After making changes to the tree data, {@link diff --git a/server/src/test/java/com/vaadin/data/provider/TreeDataProviderTest.java b/server/src/test/java/com/vaadin/data/provider/TreeDataProviderTest.java index 8232d2fc45..3ff94e9988 100644 --- a/server/src/test/java/com/vaadin/data/provider/TreeDataProviderTest.java +++ b/server/src/test/java/com/vaadin/data/provider/TreeDataProviderTest.java @@ -81,6 +81,14 @@ public class TreeDataProviderTest } @Test + public void treeData_get_parent() { + StrBean root = rootData.get(0); + StrBean firstChild = data.getChildren(root).get(0); + Assert.assertNull(data.getParent(root)); + Assert.assertEquals(root, data.getParent(firstChild)); + } + + @Test public void treeData_set_parent() { StrBean item1 = rootData.get(0); StrBean item2 = rootData.get(1); |