From e6a278ea4cf7760bce5ef03e487d99c16cf20bbf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Mon, 27 Feb 2012 16:04:46 +0200 Subject: [PATCH] Update GridLayout to use its "margins" (#8313) --- .../terminal/gwt/client/LayoutManager.java | 8 ++++++ .../terminal/gwt/client/ui/VGridLayout.java | 26 ++++++++++++------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/client/LayoutManager.java b/src/com/vaadin/terminal/gwt/client/LayoutManager.java index e90e045356..bb869ac2d0 100644 --- a/src/com/vaadin/terminal/gwt/client/LayoutManager.java +++ b/src/com/vaadin/terminal/gwt/client/LayoutManager.java @@ -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(); + } } diff --git a/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java b/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java index 789fb66750..7c1f13e977 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java @@ -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); } } -- 2.39.5