diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2010-03-16 09:09:14 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2010-03-16 09:09:14 +0000 |
commit | 6e0348db2285e3bf5a14f304745a6c3b9f4facae (patch) | |
tree | 03a41d74f9daead2f40b852a8efd203e14af56c6 | |
parent | 223902154b9db14ce533f8f914eb186d4d5f44a7 (diff) | |
download | vaadin-framework-6e0348db2285e3bf5a14f304745a6c3b9f4facae.tar.gz vaadin-framework-6e0348db2285e3bf5a14f304745a6c3b9f4facae.zip |
fixes #4351 (relative size changes don't propagate via csslayout)
svn changeset:11905/svn branch:6.3
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java b/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java index 90cf102cb9..5307234869 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VCssLayout.java @@ -55,6 +55,7 @@ public class VCssLayout extends SimplePanel implements Paintable, Container { private boolean hasHeight; private boolean hasWidth; + private boolean rendering; public VCssLayout() { super(); @@ -74,6 +75,9 @@ public class VCssLayout extends SimplePanel implements Paintable, Container { super.setWidth(width); // panel.setWidth(width); hasWidth = width != null && !width.equals(""); + if (!rendering) { + panel.updateRelativeSizes(); + } } @Override @@ -81,11 +85,16 @@ public class VCssLayout extends SimplePanel implements Paintable, Container { super.setHeight(height); // panel.setHeight(height); hasHeight = height != null && !height.equals(""); + if (!rendering) { + panel.updateRelativeSizes(); + } } public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { + rendering = true; if (client.updateComponent(this, uidl, true)) { + rendering = false; return; } clickEventHandler.handleEventHandlerRegistration(client); @@ -104,6 +113,7 @@ public class VCssLayout extends SimplePanel implements Paintable, Container { setStyleName(margin, CLASSNAME + "-" + "spacing", uidl .hasAttribute("spacing")); panel.updateFromUIDL(uidl, client); + rendering = false; } public boolean hasChildComponent(Widget component) { @@ -128,6 +138,14 @@ public class VCssLayout extends SimplePanel implements Paintable, Container { setStyleName(CLASSNAME + "-container"); } + public void updateRelativeSizes() { + for (Widget w : getChildren()) { + if (w instanceof Paintable) { + client.handleComponentRelativeSize(w); + } + } + } + public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { // for later requests |