]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixed issues with tabsheets using dynamic height (related to #2061)
authorArtur Signell <artur.signell@itmill.com>
Thu, 6 Nov 2008 07:04:17 +0000 (07:04 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 6 Nov 2008 07:04:17 +0000 (07:04 +0000)
svn changeset:5822/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java
src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java

index 7dcc659ec63400a803453f328f7522145ab31b46..04531d30344dd321b3afc1d430629c95f92875a5 100644 (file)
@@ -19,7 +19,6 @@ import com.google.gwt.user.client.ui.ComplexPanel;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
-import com.itmill.toolkit.terminal.gwt.client.BrowserInfo;
 import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener;
 import com.itmill.toolkit.terminal.gwt.client.ICaption;
 import com.itmill.toolkit.terminal.gwt.client.Paintable;
@@ -295,6 +294,9 @@ public class ITabsheet extends ITabsheetBase implements
         }
 
         updateTabScroller();
+
+        renderInformation.updateSize(getElement());
+
         waitingForResponse = false;
     }
 
@@ -397,6 +399,7 @@ public class ITabsheet extends ITabsheetBase implements
 
         ITabsheet.this.iLayout();
         (content).updateFromUIDL(contentUIDL, client);
+        fixHeight();
         ITabsheet.this.removeStyleDependentName("loading");
         if (previousVisibleWidget != null) {
             DOM.setStyleAttribute(previousVisibleWidget.getElement(),
@@ -423,6 +426,7 @@ public class ITabsheet extends ITabsheetBase implements
         } else {
             DOM.setStyleAttribute(contentNode, "height", "");
             renderSpace.setHeight(0);
+            fixHeight();
         }
         iLayout();
     }
@@ -448,33 +452,31 @@ public class ITabsheet extends ITabsheetBase implements
     }
 
     public void iLayout() {
+        if (client != null) {
+            client.runDescendentsLayout(this);
+        }
+
+        updateTabScroller();
+
+        if (tp.getVisibleWidget() >= 0) {
+            Util.runWebkitOverflowAutoFix(DOM.getParent(tp.getWidget(
+                    tp.getVisibleWidget()).getElement()));
+        }
+    }
+
+    private void fixHeight() {
         if (isDynamicHeight()) {
             if (tp.getVisibleWidget() >= 0) {
                 Widget widget = tp.getWidget(tp.getVisibleWidget());
                 int widgetHeight = widget.getOffsetHeight();
                 DOM.setStyleAttribute(tp.getElement(), "height", widgetHeight
                         + "px");
-                if (BrowserInfo.get().isIE6()) {
-                    // 100% height is not good enough for IE6...
-                    tp.setVisibleWidgetHeight(widgetHeight);
-                }
+                tp.setVisibleWidgetHeight(widgetHeight);
             }
         } else {
             DOM.setStyleAttribute(tp.getElement(), "height", "");
         }
 
-        renderInformation.updateSize(getElement());
-
-        if (client != null) {
-            client.runDescendentsLayout(this);
-        }
-
-        updateTabScroller();
-
-        if (tp.getVisibleWidget() >= 0) {
-            Util.runWebkitOverflowAutoFix(DOM.getParent(tp.getWidget(
-                    tp.getVisibleWidget()).getElement()));
-        }
     }
 
     /**
@@ -566,6 +568,7 @@ public class ITabsheet extends ITabsheetBase implements
              * Size has changed so we let the child components know about the
              * new size.
              */
+            fixHeight();
             iLayout();
 
             return false;
index 6f0955b370f93da375f5b1c639211c2b55a9c964..b5eff5b122a76d448c90abc65587482882f73f6e 100644 (file)
@@ -47,8 +47,6 @@ public class ITabsheetPanel extends ComplexPanel {
         Element el = DOM.createDiv();\r
         DOM.setStyleAttribute(el, "position", "absolute");\r
         DOM.setStyleAttribute(el, "overflow", "auto");\r
-        DOM.setStyleAttribute(el, "width", "100%");\r
-        DOM.setStyleAttribute(el, "height", "100%");\r
         hide(el);\r
         return el;\r
     }\r