]> source.dussan.org Git - vaadin-framework.git/commitdiff
IGridLayout enhancements: correct available space and canvas size
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 12 Nov 2008 09:48:24 +0000 (09:48 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Wed, 12 Nov 2008 09:48:24 +0000 (09:48 +0000)
svn changeset:5872/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IGridLayout.java

index 2d0238c9ee88ba456b955a677f0b21c33986ede1..182c1027153ac1e10b10d6f302c97dae98c26f0b 100644 (file)
@@ -307,8 +307,20 @@ public class IGridLayout extends SimplePanel implements Paintable, Container {
             }
             x += columnWidths[i] + spacingPixels;
         }
-        // ensure canvas is right size
-        canvas.setPixelSize(x - spacingPixels, y - spacingPixels);
+
+        if ("".equals(width)) {
+            canvas.setWidth((x - spacingPixels) + "px");
+        } else {
+            // main element defines width
+            canvas.setWidth("");
+        }
+        int canvasHeight;
+        if ("".equals(height)) {
+            canvasHeight = y - spacingPixels;
+        } else {
+            canvasHeight = getOffsetHeight() - marginTopAndBottom;
+        }
+        canvas.setHeight(canvasHeight + "px");
     }
 
     private void renderRemainingComponents(LinkedList<Cell> pendingCells) {
@@ -718,7 +730,9 @@ public class IGridLayout extends SimplePanel implements Paintable, Container {
         }
 
         public RenderSpace getAllocatedSpace() {
-            return new RenderSpace(getAvailableWidth(), getAvailableHeight());
+            return new RenderSpace(getAvailableWidth()
+                    - cc.getCaptionWidthAfterComponent(), getAvailableHeight()
+                    - cc.getCaptionHeightAboveComponent());
         }
 
         public boolean hasContent() {