]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #1743 (natural height horizontal expand layout)
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 24 Jun 2008 08:51:41 +0000 (08:51 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 24 Jun 2008 08:51:41 +0000 (08:51 +0000)
svn changeset:4943/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IExpandLayout.java
src/com/itmill/toolkit/tests/TestForExpandLayout.java

index 848523b9a1227a8ca4fab0380fd712262549915f..b52af237bbd70be697cab1ed0794089efc4694ee 100644 (file)
@@ -352,9 +352,24 @@ public class IExpandLayout extends ComplexPanel implements
 
     public void iLayout() {
         if (orientationMode == ORIENTATION_HORIZONTAL) {
-            int pixels = getOffsetHeight() - getTopMargin() - getBottomMargin();
-            if (pixels < 0) {
-                pixels = 0;
+            int pixels;
+            if ("".equals(height)) {
+                // try to find minimum height by looping all widgets
+                int maxHeight = 0;
+                Iterator iterator = getPaintables().iterator();
+                while (iterator.hasNext()) {
+                    Widget w = (Widget) iterator.next();
+                    int h = w.getOffsetHeight();
+                    if (h > maxHeight) {
+                        maxHeight = h;
+                    }
+                }
+                pixels = maxHeight;
+            } else {
+                pixels = getOffsetHeight() - getTopMargin() - getBottomMargin();
+                if (pixels < 0) {
+                    pixels = 0;
+                }
             }
             DOM.setStyleAttribute(marginElement, "height", pixels + "px");
             DOM.setStyleAttribute(marginElement, "overflow", "hidden");
index c077390b2ae09e4aeb1f62d3c89349dde60cc132..1e07bcd2253ca3727be9cd2bf5bb0ed14b68207e 100644 (file)
@@ -9,6 +9,7 @@ import com.itmill.toolkit.ui.DateField;
 import com.itmill.toolkit.ui.ExpandLayout;\r
 import com.itmill.toolkit.ui.Label;\r
 import com.itmill.toolkit.ui.OrderedLayout;\r
+import com.itmill.toolkit.ui.Panel;\r
 \r
 /**\r
  * \r
@@ -27,15 +28,25 @@ public class TestForExpandLayout extends CustomComponent {
 \r
     public void createNewView() {\r
         main.removeAllComponents();\r
-        for (int i = 0; i < 10; i++) {\r
+        for (int i = 0; i < 6; i++) {\r
             final ExpandLayout el = new ExpandLayout(\r
                     OrderedLayout.ORIENTATION_HORIZONTAL);\r
-            for (int j = 0; j < 10; j++) {\r
+            for (int j = 0; j < i + 3; j++) {\r
                 final Label l = new Label("label" + i + ":" + j);\r
                 el.addComponent(l);\r
             }\r
             if (i > 0) {\r
-                el.setHeight(1, ExpandLayout.UNITS_EM);\r
+                // el.setMargin(true);\r
+                el.setSizeUndefined();\r
+                el.setWidth("100%");\r
+                if (i % 2 == 0) {\r
+                    el.setHeight("8em");\r
+                    Panel p = new Panel("tp");\r
+                    p.addComponent(new Label("panelc"));\r
+                    p.setHeight("100%");\r
+                    p.setWidth("100px");\r
+                    el.addComponent(p);\r
+                }\r
             }\r
             main.addComponent(el);\r
         }\r