summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorHenri Sara <hesara@vaadin.com>2012-09-03 15:23:15 +0300
committerHenri Sara <hesara@vaadin.com>2012-09-03 15:23:47 +0300
commit64513865eee2417fd167a21b4c45b1c6ad097f37 (patch)
tree8a4caeeeac6eeb649f4f03446944c3b562e529f3 /server
parent633f4141570f52fc78f4b0b48017c4c246cdf399 (diff)
downloadvaadin-framework-64513865eee2417fd167a21b4c45b1c6ad097f37.tar.gz
vaadin-framework-64513865eee2417fd167a21b4c45b1c6ad097f37.zip
Use HierarchicalContainer as default container for Tree (#3950)
Diffstat (limited to 'server')
-rw-r--r--server/src/com/vaadin/ui/Tree.java13
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/tree/TestHasChildren.java25
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/tree/TreeTest.java74
3 files changed, 79 insertions, 33 deletions
diff --git a/server/src/com/vaadin/ui/Tree.java b/server/src/com/vaadin/ui/Tree.java
index 9cf1aa3511..03895a12bb 100644
--- a/server/src/com/vaadin/ui/Tree.java
+++ b/server/src/com/vaadin/ui/Tree.java
@@ -33,7 +33,7 @@ import java.util.StringTokenizer;
import com.vaadin.data.Container;
import com.vaadin.data.Item;
import com.vaadin.data.util.ContainerHierarchicalWrapper;
-import com.vaadin.data.util.IndexedContainer;
+import com.vaadin.data.util.HierarchicalContainer;
import com.vaadin.event.Action;
import com.vaadin.event.Action.Handler;
import com.vaadin.event.DataBoundTransferable;
@@ -140,6 +140,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Creates a new empty tree.
*/
public Tree() {
+ this(null);
}
/**
@@ -148,7 +149,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* @param caption
*/
public Tree(String caption) {
- setCaption(caption);
+ this(caption, new HierarchicalContainer());
}
/**
@@ -158,8 +159,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* @param dataSource
*/
public Tree(String caption, Container dataSource) {
- setCaption(caption);
- setContainerDataSource(dataSource);
+ super(caption, dataSource);
}
/* Expanding and collapsing */
@@ -827,10 +827,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
@Override
public void setContainerDataSource(Container newDataSource) {
if (newDataSource == null) {
- // Note: using wrapped IndexedContainer to match constructor (super
- // creates an IndexedContainer, which is then wrapped).
- newDataSource = new ContainerHierarchicalWrapper(
- new IndexedContainer());
+ newDataSource = new HierarchicalContainer();
}
// Assure that the data source is ordered by making unordered
diff --git a/server/tests/src/com/vaadin/tests/server/component/tree/TestHasChildren.java b/server/tests/src/com/vaadin/tests/server/component/tree/TestHasChildren.java
deleted file mode 100644
index 66535d3ffb..0000000000
--- a/server/tests/src/com/vaadin/tests/server/component/tree/TestHasChildren.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.vaadin.tests.server.component.tree;
-
-import junit.framework.TestCase;
-
-import com.vaadin.ui.Tree;
-
-public class TestHasChildren extends TestCase {
-
- private Tree tree;
-
- @Override
- protected void setUp() {
- tree = new Tree();
- tree.addItem("parent");
- tree.addItem("child");
- tree.setChildrenAllowed("parent", true);
- tree.setParent("child", "parent");
- }
-
- public void testRemoveChildren() {
- assertTrue(tree.hasChildren("parent"));
- tree.removeItem("child");
- assertFalse(tree.hasChildren("parent"));
- }
-}
diff --git a/server/tests/src/com/vaadin/tests/server/component/tree/TreeTest.java b/server/tests/src/com/vaadin/tests/server/component/tree/TreeTest.java
new file mode 100644
index 0000000000..16a7091947
--- /dev/null
+++ b/server/tests/src/com/vaadin/tests/server/component/tree/TreeTest.java
@@ -0,0 +1,74 @@
+package com.vaadin.tests.server.component.tree;
+
+import junit.framework.TestCase;
+
+import com.vaadin.data.Container;
+import com.vaadin.data.util.HierarchicalContainer;
+import com.vaadin.data.util.IndexedContainer;
+import com.vaadin.ui.Tree;
+
+public class TreeTest extends TestCase {
+
+ private Tree tree;
+ private Tree tree2;
+ private Tree tree3;
+ private Tree tree4;
+
+ @Override
+ protected void setUp() {
+ tree = new Tree();
+ tree.addItem("parent");
+ tree.addItem("child");
+ tree.setChildrenAllowed("parent", true);
+ tree.setParent("child", "parent");
+
+ tree2 = new Tree("Caption");
+ tree2.addItem("parent");
+ tree2.addItem("child");
+ tree2.setChildrenAllowed("parent", true);
+ tree2.setParent("child", "parent");
+
+ tree3 = new Tree("Caption", null);
+ tree3.addItem("parent");
+ tree3.addItem("child");
+ tree3.setChildrenAllowed("parent", true);
+ tree3.setParent("child", "parent");
+
+ tree4 = new Tree("Caption", new IndexedContainer());
+ tree4.addItem("parent");
+ tree4.addItem("child");
+ tree4.setChildrenAllowed("parent", true);
+ tree4.setParent("child", "parent");
+ }
+
+ public void testRemoveChildren() {
+ assertTrue(tree.hasChildren("parent"));
+ tree.removeItem("child");
+ assertFalse(tree.hasChildren("parent"));
+
+ assertTrue(tree2.hasChildren("parent"));
+ tree2.removeItem("child");
+ assertFalse(tree2.hasChildren("parent"));
+
+ assertTrue(tree3.hasChildren("parent"));
+ tree3.removeItem("child");
+ assertFalse(tree3.hasChildren("parent"));
+
+ assertTrue(tree4.hasChildren("parent"));
+ tree4.removeItem("child");
+ assertFalse(tree4.hasChildren("parent"));
+ }
+
+ public void testContainerTypeIsHierarchical() {
+ assertTrue(HierarchicalContainer.class.isAssignableFrom(tree
+ .getContainerDataSource().getClass()));
+ assertTrue(HierarchicalContainer.class.isAssignableFrom(tree2
+ .getContainerDataSource().getClass()));
+ assertTrue(HierarchicalContainer.class.isAssignableFrom(tree3
+ .getContainerDataSource().getClass()));
+ assertFalse(HierarchicalContainer.class.isAssignableFrom(tree4
+ .getContainerDataSource().getClass()));
+ assertTrue(Container.Hierarchical.class.isAssignableFrom(tree4
+ .getContainerDataSource().getClass()));
+ }
+}