--- /dev/null
+package com.vaadin.tests.layouts;\r
+\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Label;\r
+import com.vaadin.ui.VerticalLayout;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
+\r
+public class VerticalLayoutWithRelativeSizeComponentsInitiallyHidden extends\r
+ TestBase {\r
+\r
+ @Override\r
+ protected String getDescription() {\r
+ return "Size calculations fail if expanded component is relative sized "\r
+ + "and initially invisible and when becoming visible at the "\r
+ + "same time some other component size changes.";\r
+ }\r
+\r
+ @Override\r
+ protected Integer getTicketNumber() {\r
+ return 4608;\r
+ }\r
+\r
+ @Override\r
+ protected void setup() {\r
+\r
+ VerticalLayout verticalLayout = getLayout();\r
+ verticalLayout.setHeight("500px");\r
+\r
+ final Label bar = new Label("Bar");\r
+ bar.setSizeUndefined();\r
+ final Label foobar = new Label("FooBar");\r
+ foobar.setSizeFull();\r
+ foobar.setVisible(false);\r
+\r
+ bar.setHeight("100px");\r
+\r
+ // bar.setHeight("100px");\r
+ bar.setVisible(false);\r
+\r
+ Button b = new Button(\r
+ "Click to set bar visible. Button should stay visible.");\r
+ b.addListener(new ClickListener() {\r
+\r
+ public void buttonClick(ClickEvent event) {\r
+ bar.setVisible(true);\r
+ foobar.setVisible(true);\r
+ }\r
+ });\r
+\r
+ verticalLayout.addComponent(bar);\r
+ verticalLayout.addComponent(foobar);\r
+ verticalLayout.setExpandRatio(foobar, 1);\r
+ verticalLayout.addComponent(b);\r
+ }\r
+\r
+}\r