diff options
author | Artur Signell <artur.signell@itmill.com> | 2008-12-02 10:25:37 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2008-12-02 10:25:37 +0000 |
commit | 35c68514a234c858dd13660e05b10deaaaf05d2f (patch) | |
tree | d69ae291e3c1074bf0c048d5d8ffdb6d3d2371dc /src/com/itmill/toolkit/terminal/gwt/client/ui | |
parent | f4583415e5a3ae5dc07b75b0e9f3e7ba186c353b (diff) | |
download | vaadin-framework-35c68514a234c858dd13660e05b10deaaaf05d2f.tar.gz vaadin-framework-35c68514a234c858dd13660e05b10deaaaf05d2f.zip |
Fixed #2257 for Panel and TabSheet.
svn changeset:6067/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/terminal/gwt/client/ui')
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java | 12 | ||||
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java | 17 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java index 2b7a853824..22d215f4e3 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java @@ -51,7 +51,7 @@ public class IPanel extends SimplePanel implements Container { ShortcutActionHandler shortcutHandler; - private String width; + private String width = ""; private Element geckoCaptionMeter; @@ -432,10 +432,20 @@ public class IPanel extends SimplePanel implements Container { @Override public void setWidth(String width) { + if (this.width.equals(width)) { + return; + } + this.width = width; super.setWidth(width); if (!rendering) { runHacks(true); + + if (height.equals("")) { + // Width change may affect height + Util.updateRelativeChildrenAndSendSizeUpdateEvent(client, this); + } + } } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java index 06a6810fbb..ccb7bb6a75 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java @@ -431,6 +431,13 @@ public class ITabsheet extends ITabsheetBase { ITabsheet.this.iLayout(); (content).updateFromUIDL(contentUIDL, client); + /* + * The size of a cached, relative sized component must be updated to + * report correct size to updateOpenTabSize(). + */ + if (contentUIDL.getBooleanAttribute("cached")) { + client.handleComponentRelativeSize((Widget) content); + } updateOpenTabSize(); ITabsheet.this.removeStyleDependentName("loading"); if (previousVisibleWidget != null) { @@ -469,6 +476,11 @@ public class ITabsheet extends ITabsheetBase { @Override public void setWidth(String width) { + if ((this.width == null && width.equals("")) + || (this.width != null && this.width.equals(width))) { + return; + } + super.setWidth(width); if (width.equals("")) { width = null; @@ -487,6 +499,11 @@ public class ITabsheet extends ITabsheetBase { } if (!rendering) { + if (isDynamicHeight()) { + Util.updateRelativeChildrenAndSendSizeUpdateEvent(client, tp, + this); + } + updateOpenTabSize(); iLayout(); // TODO Check if this is needed |