]> source.dussan.org Git - vaadin-framework.git/commitdiff
Update GridLayout to use its "margins" (#8313)
authorLeif Åstrand <leif@vaadin.com>
Mon, 27 Feb 2012 14:04:46 +0000 (16:04 +0200)
committerLeif Åstrand <leif@vaadin.com>
Mon, 27 Feb 2012 14:05:01 +0000 (16:05 +0200)
src/com/vaadin/terminal/gwt/client/LayoutManager.java
src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java

index e90e04535640aa55adefdbd5d069f067153d836e..bb869ac2d031260194ed8f13cf1acf9d6cc02919 100644 (file)
@@ -330,4 +330,12 @@ public class LayoutManager {
     public int getPaddingLeft(Element element) {
         return getMeasuredSize(element, nullSize).getPaddingLeft();
     }
+
+    public int getPaddingBottom(Element element) {
+        return getMeasuredSize(element, nullSize).getPaddingBottom();
+    }
+
+    public int getPaddingRight(Element element) {
+        return getMeasuredSize(element, null).getPaddingRight();
+    }
 }
index 789fb667508518165e562fd6978be6a16cdd0d1f..7c1f13e977f8820a821a50fbb70b57450fd6e472 100644 (file)
@@ -17,9 +17,6 @@ import com.google.gwt.user.client.Element;
 import com.google.gwt.user.client.ui.ComplexPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.ComponentState;
-import com.vaadin.terminal.gwt.client.RenderSpace;
-import com.vaadin.terminal.gwt.client.StyleConstants;
 import com.vaadin.terminal.gwt.client.LayoutManager;
 import com.vaadin.terminal.gwt.client.UIDL;
 import com.vaadin.terminal.gwt.client.Util;
@@ -190,9 +187,13 @@ public class VGridLayout extends ComplexPanel {
 
     void layoutCellsVertically() {
         int verticalSpacing = getVerticalSpacing();
-        int y = 0;
+        LayoutManager layoutManager = LayoutManager.get(client);
+        Element element = getElement();
+        int paddingTop = layoutManager.getPaddingTop(element);
+        int y = paddingTop;
+
         for (int i = 0; i < cells.length; i++) {
-            y = 0;
+            y = paddingTop;
             for (int j = 0; j < cells[i].length; j++) {
                 Cell cell = cells[i][j];
                 if (cell != null) {
@@ -203,13 +204,17 @@ public class VGridLayout extends ComplexPanel {
         }
 
         if (isUndefinedHeight()) {
-            int innerHeight = y - verticalSpacing;
-            getElement().getStyle().setHeight(innerHeight, Unit.PX);
+            int outerHeight = y - verticalSpacing
+                    + layoutManager.getPaddingBottom(element)
+                    + layoutManager.getBorderHeight(element);
+            element.getStyle().setHeight(outerHeight, Unit.PX);
         }
     }
 
     void layoutCellsHorizontally() {
-        int x = 0;
+        LayoutManager layoutManager = LayoutManager.get(client);
+        Element element = getElement();
+        int x = layoutManager.getPaddingLeft(element);
         int horizontalSpacing = getHorizontalSpacing();
         for (int i = 0; i < cells.length; i++) {
             for (int j = 0; j < cells[i].length; j++) {
@@ -222,7 +227,10 @@ public class VGridLayout extends ComplexPanel {
         }
 
         if (isUndefinedWidth()) {
-            getElement().getStyle().setWidth((x - horizontalSpacing), Unit.PX);
+            int outerWidth = x - horizontalSpacing
+                    + layoutManager.getPaddingRight(element)
+                    + layoutManager.getBorderWidth(element);
+            element.getStyle().setWidth(outerWidth, Unit.PX);
         }
     }