summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2010-03-16 09:09:14 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2010-03-16 09:09:14 +0000
commit6e0348db2285e3bf5a14f304745a6c3b9f4facae (patch)
tree03a41d74f9daead2f40b852a8efd203e14af56c6
parent223902154b9db14ce533f8f914eb186d4d5f44a7 (diff)
downloadvaadin-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.java18
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