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;
}
--- /dev/null
+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