]> source.dussan.org Git - vaadin-framework.git/commitdiff
Added test for adding components multiple times, and container recursion.
authorMarc Englund <marc.englund@itmill.com>
Fri, 1 Feb 2008 12:19:19 +0000 (12:19 +0000)
committerMarc Englund <marc.englund@itmill.com>
Fri, 1 Feb 2008 12:19:19 +0000 (12:19 +0000)
svn changeset:3702/svn branch:trunk

src/com/itmill/toolkit/tests/TestComponentAddAndRecursion.java [new file with mode: 0644]

diff --git a/src/com/itmill/toolkit/tests/TestComponentAddAndRecursion.java b/src/com/itmill/toolkit/tests/TestComponentAddAndRecursion.java
new file mode 100644 (file)
index 0000000..e70fdc1
--- /dev/null
@@ -0,0 +1,107 @@
+/**\r
+ * \r
+ */\r
+package com.itmill.toolkit.tests;\r
+\r
+import com.itmill.toolkit.ui.Button;\r
+import com.itmill.toolkit.ui.CustomComponent;\r
+import com.itmill.toolkit.ui.Label;\r
+import com.itmill.toolkit.ui.OrderedLayout;\r
+import com.itmill.toolkit.ui.Panel;\r
+import com.itmill.toolkit.ui.Window;\r
+import com.itmill.toolkit.ui.Button.ClickEvent;\r
+\r
+/**\r
+ * @author marc\r
+ * \r
+ */\r
+public class TestComponentAddAndRecursion extends CustomComponent {\r
+    Panel p;\r
+    Panel p2;\r
+    Label l;\r
+    Label l2;\r
+    Panel p3;\r
+\r
+    public TestComponentAddAndRecursion() {\r
+\r
+        OrderedLayout main = new OrderedLayout();\r
+        setCompositionRoot(main);\r
+\r
+        l = new Label("A");\r
+        l2 = new Label("B");\r
+        p = new Panel("p");\r
+        p.addComponent(l);\r
+        p.addComponent(l2);\r
+        main.addComponent(p);\r
+        p2 = new Panel("p2");\r
+        p2.addComponent(l);\r
+        main.addComponent(p2);\r
+        p3 = new Panel("p3");\r
+        p2.addComponent(p3);\r
+\r
+        Button b = new Button("move B", new Button.ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                p2.addComponent(l2);\r
+            }\r
+\r
+        });\r
+        main.addComponent(b);\r
+        b = new Button("move p", new Button.ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                p3.addComponent(p);\r
+            }\r
+\r
+        });\r
+        main.addComponent(b);\r
+        b = new Button("add to both", new Button.ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                Label l = new Label("both");\r
+                p.addComponent(l);\r
+                p2.addComponent(l);\r
+            }\r
+\r
+        });\r
+        main.addComponent(b);\r
+        b = new Button("recurse", new Button.ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                try {\r
+                    p3.addComponent(p2);\r
+                    getWindow().showNotification("ERROR",\r
+                            "This should have failed",\r
+                            Window.Notification.TYPE_ERROR_MESSAGE);\r
+                } catch (Exception e) {\r
+                    getWindow().showNotification("OK", "threw, as expected",\r
+                            Window.Notification.TYPE_ERROR_MESSAGE);\r
+                }\r
+            }\r
+\r
+        });\r
+        main.addComponent(b);\r
+        b = new Button("recurse2", new Button.ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                Panel p = new Panel("dynamic");\r
+                p.addComponent(p2);\r
+                try {\r
+                    p3.addComponent(p);\r
+                    getWindow().showNotification("ERROR",\r
+                            "This should have failed",\r
+                            Window.Notification.TYPE_ERROR_MESSAGE);\r
+                } catch (Exception e) {\r
+                    getWindow().showNotification("OK", "threw, as expected",\r
+                            Window.Notification.TYPE_ERROR_MESSAGE);\r
+                }\r
+            }\r
+\r
+        });\r
+        main.addComponent(b);\r
+        /*\r
+         * And that's it! The framework will display the main window and its\r
+         * contents when the application is accessed with the terminal.\r
+         */\r
+    }\r
+}\r