diff options
author | Artur Signell <artur@vaadin.com> | 2012-08-30 17:24:36 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2012-08-30 17:24:36 +0300 |
commit | 7b25b3886ea95bc6495506fbe9472e45fcbde684 (patch) | |
tree | 0b93cb65dab437feb46720659a63b8f1ef48f7f4 /uitest/src/com/vaadin/tests/TestComponentAddAndRecursion.java | |
parent | 8941056349e302e687e40e94c13709e75f256d73 (diff) | |
download | vaadin-framework-7b25b3886ea95bc6495506fbe9472e45fcbde684.tar.gz vaadin-framework-7b25b3886ea95bc6495506fbe9472e45fcbde684.zip |
Renamed tests -> uitest and tests/testbench -> uitest/src (#9299)
Diffstat (limited to 'uitest/src/com/vaadin/tests/TestComponentAddAndRecursion.java')
-rw-r--r-- | uitest/src/com/vaadin/tests/TestComponentAddAndRecursion.java | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/TestComponentAddAndRecursion.java b/uitest/src/com/vaadin/tests/TestComponentAddAndRecursion.java new file mode 100644 index 0000000000..1a93de387a --- /dev/null +++ b/uitest/src/com/vaadin/tests/TestComponentAddAndRecursion.java @@ -0,0 +1,138 @@ +/** + * + */ +package com.vaadin.tests; + +import com.vaadin.server.Page; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.CustomComponent; +import com.vaadin.ui.GridLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.Notification; +import com.vaadin.ui.Panel; +import com.vaadin.ui.VerticalLayout; + +/** + * @author marc + * + */ +public class TestComponentAddAndRecursion extends CustomComponent { + Panel p; + Panel p2; + Label l; + Label l2; + Panel p3; + + public TestComponentAddAndRecursion() { + + VerticalLayout main = new VerticalLayout(); + setCompositionRoot(main); + + l = new Label("A"); + l2 = new Label("B"); + p = new Panel("p"); + p.addComponent(l); + p.addComponent(l2); + main.addComponent(p); + p2 = new Panel("p2"); + p2.addComponent(l); + main.addComponent(p2); + p3 = new Panel("p3"); + p2.addComponent(p3); + + Button b = new Button("use gridlayout", new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + p.setContent(new GridLayout()); + p2.setContent(new GridLayout()); + p3.setContent(new GridLayout()); + } + + }); + main.addComponent(b); + b = new Button("use orderedlayout", new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + p.setContent(new VerticalLayout()); + p2.setContent(new VerticalLayout()); + p3.setContent(new VerticalLayout()); + } + + }); + main.addComponent(b); + b = new Button("move B", new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + p2.addComponent(l2); + } + + }); + main.addComponent(b); + b = new Button("move p", new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + p3.addComponent(p); + } + + }); + main.addComponent(b); + b = new Button("add to both", new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + Label l = new Label("both"); + p.addComponent(l); + p2.addComponent(l); + } + + }); + main.addComponent(b); + b = new Button("recurse", new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + try { + p3.addComponent(p2); + new Notification("ERROR", "This should have failed", + Notification.TYPE_ERROR_MESSAGE).show(Page + .getCurrent()); + } catch (Exception e) { + new Notification("OK", "threw, as expected", + Notification.TYPE_ERROR_MESSAGE).show(Page + .getCurrent()); + } + } + + }); + main.addComponent(b); + b = new Button("recurse2", new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + Panel p = new Panel("dynamic"); + p.addComponent(p2); + try { + p3.addComponent(p); + new Notification("ERROR", "This should have failed", + Notification.TYPE_ERROR_MESSAGE).show(Page + .getCurrent()); + } catch (Exception e) { + new Notification("OK", "threw, as expected", + Notification.TYPE_ERROR_MESSAGE).show(Page + .getCurrent()); + } + } + + }); + main.addComponent(b); + /* + * And that's it! The framework will display the main window and its + * contents when the application is accessed with the terminal. + */ + } +} |