From 3cdd918f35d7923576699c524d0f964b08913e4f Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Tue, 3 Apr 2012 15:53:56 +0300 Subject: Make AbsoluteLayout report relative child sizes to LayoutManager --- .../terminal/gwt/client/ui/AbsoluteLayoutConnector.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java index f0942066f2..e2d92d99e6 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java @@ -121,6 +121,11 @@ public class AbsoluteLayoutConnector extends - wrapper.getElement().getOffsetTop(); } wrapperStyle.setHeight(h, Unit.PX); + float percentSize = parsePercent(paintable.getState() + .getHeight()); + int effectiveHeight = Math.round(h * (percentSize / 100)); + getLayoutManager() + .reportOuterHeight(paintable, effectiveHeight); } else { wrapperStyle.clearHeight(); } @@ -129,6 +134,10 @@ public class AbsoluteLayoutConnector extends } } + private static float parsePercent(String size) { + return Float.parseFloat(size.substring(0, size.length() - 1)); + } + public void layoutHorizontally() { VAbsoluteLayout layout = getWidget(); for (ComponentConnector paintable : getChildren()) { @@ -153,6 +162,10 @@ public class AbsoluteLayoutConnector extends - wrapper.getElement().getOffsetLeft(); } wrapperStyle.setWidth(w, Unit.PX); + float percentSize = parsePercent(paintable.getState() + .getWidth()); + int effectiveWidth = Math.round(w * (percentSize / 100)); + getLayoutManager().reportOuterWidth(paintable, effectiveWidth); } else { wrapperStyle.clearWidth(); } -- cgit v1.2.3