123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package com.vaadin.tests;
-
- import com.vaadin.server.Page;
- import com.vaadin.ui.Button;
- 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;
- VerticalLayout pl;
- Panel p2;
- VerticalLayout p2l;
- Label l;
- Label l2;
- Panel p3;
- VerticalLayout p3l;
-
- public TestComponentAddAndRecursion() {
-
- VerticalLayout main = new VerticalLayout();
- setCompositionRoot(main);
-
- l = new Label("A");
- l2 = new Label("B");
- pl = new VerticalLayout();
- pl.setMargin(true);
- p = new Panel("p", pl);
- pl.addComponent(l);
- pl.addComponent(l2);
- main.addComponent(p);
- p2l = new VerticalLayout();
- p2l.setMargin(true);
- p2 = new Panel("p2", p2l);
- p2l.addComponent(l);
- main.addComponent(p2);
- p3l = new VerticalLayout();
- p3l.setMargin(true);
- p3 = new Panel("p3", p3l);
- p2l.addComponent(p3);
-
- Button b = new Button("use gridlayout", event -> {
- p.setContent(new GridLayout());
- p2.setContent(new GridLayout());
- p3.setContent(new GridLayout());
- });
- main.addComponent(b);
- b = new Button("use orderedlayout", event -> {
- p.setContent(new VerticalLayout());
- p2.setContent(new VerticalLayout());
- p3.setContent(new VerticalLayout());
- });
- main.addComponent(b);
- b = new Button("move B", event -> p2l.addComponent(l2));
- main.addComponent(b);
- b = new Button("move p", event -> p3l.addComponent(p));
- main.addComponent(b);
- b = new Button("add to both", event -> {
- Label l = new Label("both");
- pl.addComponent(l);
- p2l.addComponent(l);
- });
- main.addComponent(b);
- b = new Button("recurse", event -> {
- try {
- p3l.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", event -> {
- VerticalLayout layout = new VerticalLayout();
- Panel p = new Panel("dynamic", layout);
- layout.addComponent(p2);
- try {
- p3l.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.
- */
- }
- }
|