From d432aa8fd8b4a357947bbb988f5bd6bc98e43f77 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Thu, 1 Nov 2012 13:59:55 +0200 Subject: Properly detach removed connectors (#9815) Change-Id: I1b9a1a1bfbf384a8e5530ca8fddd1e0758d431f2 --- ...erarchyChangeForRemovedComponentContainers.html | 32 ++++++++++++ ...erarchyChangeForRemovedComponentContainers.java | 61 ++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.html create mode 100644 uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.java (limited to 'uitest/src') diff --git a/uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.html b/uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.html new file mode 100644 index 0000000000..49b02d3f01 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.html @@ -0,0 +1,32 @@ + + + + + + +New Test + + + + + + + + + + + + + + + + + + + + + + +
New Test
open/run/com.vaadin.tests.components.HierarchyChangeForRemovedComponentContainers?restartApplication
clickvaadin=runcomvaadintestscomponentsHierarchyChangeForRemovedComponentContainers::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VButton[0]/domChild[0]/domChild[0]
screenCapturetwo-buttons-no-NPE
+ + diff --git a/uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.java b/uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.java new file mode 100644 index 0000000000..db6ff9f537 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/HierarchyChangeForRemovedComponentContainers.java @@ -0,0 +1,61 @@ +package com.vaadin.tests.components; + +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.VerticalLayout; + +public class HierarchyChangeForRemovedComponentContainers extends TestBase { + + + private HorizontalLayout mainContent; + private VerticalLayout lo2; + + @Override + protected void setup() { + + mainContent = new HorizontalLayout(); + mainContent.setSizeFull(); + + lo2 = new VerticalLayout(); + Button button1 = new Button("asdasd1"); + button1.setHeight("90%"); + Button button2 = new Button("asdasd2"); + button2.setHeight("90%"); + lo2.addComponent(button1); + lo2.addComponent(button2); + + compose(); + + addComponent(new Button("Replace layout with button", + new Button.ClickListener() { + @Override + public void buttonClick(ClickEvent event) { + compose2(); + } + })); + } + + private void compose() { + getLayout().removeAllComponents(); + getLayout().addComponent(mainContent); + mainContent.addComponent(lo2); + System.out.println("composed"); + } + + private void compose2() { + getLayout().removeAllComponents(); + getLayout().addComponent(lo2); + } + + @Override + protected String getDescription() { + return "HierarchyChange events should be triggered for removed layouts"; + } + + @Override + protected Integer getTicketNumber() { + return 9815; + } + +} -- cgit v1.2.3