]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixed margin handling in OrderedLayout
authorArtur Signell <artur.signell@itmill.com>
Mon, 27 Oct 2008 13:40:04 +0000 (13:40 +0000)
committerArtur Signell <artur.signell@itmill.com>
Mon, 27 Oct 2008 13:40:04 +0000 (13:40 +0000)
svn changeset:5741/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/layout/CellBasedLayout.java

index 47c96f352217a39680101a313f2b7b8249477324..1012bf686218ab2417ee8f8d25c6c98a077a4c46 100644 (file)
@@ -32,21 +32,11 @@ public abstract class CellBasedLayout extends ComplexPanel implements Container
     protected final Spacing spacingFromCSS = new Spacing(12, 12);\r
     protected final Spacing activeSpacing = new Spacing(0, 0);\r
 \r
-    private Widget clearWidget;\r
-\r
     private boolean dynamicWidth;\r
 \r
     private boolean dynamicHeight;\r
 \r
-    private static class ClearWidget extends Widget {\r
-        public ClearWidget() {\r
-            Element clearElement = DOM.createDiv();\r
-            DOM.setStyleAttribute(clearElement, "clear", "both");\r
-            DOM.setStyleAttribute(clearElement, "width", "0px");\r
-            DOM.setStyleAttribute(clearElement, "height", "0px");\r
-            setElement(clearElement);\r
-        }\r
-    }\r
+    private Element clearElement;\r
 \r
     public static class Spacing {\r
 \r
@@ -76,8 +66,13 @@ public abstract class CellBasedLayout extends ComplexPanel implements Container
         DOM.setStyleAttribute(root, "width", "500%");\r
         getElement().appendChild(root);\r
 \r
-        clearWidget = new ClearWidget();\r
-        add(clearWidget, root);\r
+        clearElement = DOM.createDiv();\r
+        DOM.setStyleAttribute(clearElement, "width", "0px");\r
+        DOM.setStyleAttribute(clearElement, "height", "0px");\r
+        DOM.setStyleAttribute(clearElement, "clear", "both");\r
+        DOM.setStyleAttribute(clearElement, "overflow", "hidden");\r
+\r
+        DOM.appendChild(getElement(), clearElement);\r
 \r
     }\r
 \r
@@ -98,15 +93,20 @@ public abstract class CellBasedLayout extends ComplexPanel implements Container
             return;\r
         }\r
 \r
-        // This call should be made first. Ensure correct implementation,\r
-        // and don't let the containing coordinateLayout manage caption, etc.\r
+        /*\r
+         * This must be called before size so that setWidth/setHeight is aware\r
+         * of the margins in use.\r
+         */\r
+        handleMarginsAndSpacing(uidl);\r
 \r
+        /*\r
+         * This call should be made first. Ensure correct implementation, handle\r
+         * size etc.\r
+         */\r
         if (client.updateComponent(this, uidl, true)) {\r
             return;\r
         }\r
 \r
-        handleMarginsAndSpacing(uidl);\r
-\r
         handleDynamicDimensions(uidl);\r
 \r
     }\r