]> source.dussan.org Git - vaadin-framework.git/commitdiff
Merged test case and fix for #3705 - "CustomComponent does not inform child about...
authorArtur Signell <artur.signell@itmill.com>
Thu, 12 Nov 2009 16:05:55 +0000 (16:05 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 12 Nov 2009 16:05:55 +0000 (16:05 +0000)
svn changeset:9760/svn branch:6.2

src/com/vaadin/terminal/gwt/client/ui/VCustomComponent.java
tests/src/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java [new file with mode: 0644]

index d0c140dac076136eb68aa339b2b4953161f6eec1..dc3cd6b2e3a8dbb644765bafa41707143595d731 100644 (file)
@@ -68,6 +68,12 @@ public class VCustomComponent extends SimplePanel implements Container {
         renderSpace.setWidth(getElement().getOffsetWidth());
         renderSpace.setHeight(getElement().getOffsetHeight());
 
+        /*
+         * Needed to update client size if the size of this component has
+         * changed and the child uses relative size(s).
+         */
+        client.runDescendentsLayout(this);
+
         rendering = false;
     }
 
diff --git a/tests/src/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java b/tests/src/com/vaadin/tests/components/customcomponent/CustomComponentSizeUpdate.java
new file mode 100644 (file)
index 0000000..ad15db1
--- /dev/null
@@ -0,0 +1,44 @@
+package com.vaadin.tests.components.customcomponent;\r
+\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.CustomComponent;\r
+import com.vaadin.ui.NativeButton;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
+\r
+public class CustomComponentSizeUpdate extends TestBase {\r
+\r
+    @Override\r
+    protected void setup() {\r
+        NativeButton nb = new NativeButton(\r
+                "100%x100% button. Click to reduce CustomComponent size");\r
+        nb.setSizeFull();\r
+\r
+        final CustomComponent cc = new CustomComponent(nb);\r
+        cc.setWidth("500px");\r
+        cc.setHeight("500px");\r
+\r
+        nb.addListener(new ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                cc.setWidth((cc.getWidth() - 20) + "px");\r
+                cc.setHeight((cc.getHeight() - 20) + "px");\r
+\r
+            }\r
+        });\r
+\r
+        addComponent(cc);\r
+\r
+    }\r
+\r
+    @Override\r
+    protected String getDescription() {\r
+        return "Click the button to reduce the size of the parent. The button should be resized to fit the parent.";\r
+    }\r
+\r
+    @Override\r
+    protected Integer getTicketNumber() {\r
+        return 3705;\r
+    }\r
+\r
+}\r