diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-04-03 16:37:27 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-04-03 16:37:27 +0300 |
commit | e76c3b037c706eebdca4c3eefe7c08a3079598da (patch) | |
tree | 863fc95191647382e152f838629420f1545c4bac | |
parent | 3cdd918f35d7923576699c524d0f964b08913e4f (diff) | |
download | vaadin-framework-e76c3b037c706eebdca4c3eefe7c08a3079598da.tar.gz vaadin-framework-e76c3b037c706eebdca4c3eefe7c08a3079598da.zip |
Move logic for parsing percentages to LayoutManager
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/LayoutManager.java | 24 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java | 15 |
2 files changed, 26 insertions, 13 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/LayoutManager.java b/src/com/vaadin/terminal/gwt/client/LayoutManager.java index 1de0b80a9e..6e4d28822b 100644 --- a/src/com/vaadin/terminal/gwt/client/LayoutManager.java +++ b/src/com/vaadin/terminal/gwt/client/LayoutManager.java @@ -453,6 +453,30 @@ public class LayoutManager { currentDependencyTree.setNeedsVerticalMeasure(component, false); } + public void reportHeightAssignedToRelative(ComponentConnector component, + int assignedHeight) { + assert component.isRelativeHeight(); + + float percentSize = parsePercent(component.getState().getHeight()); + int effectiveHeight = Math.round(assignedHeight * (percentSize / 100)); + + reportOuterHeight(component, effectiveHeight); + } + + public void reportWidthAssignedToRelative(ComponentConnector component, + int assignedWidth) { + assert component.isRelativeWidth(); + + float percentSize = parsePercent(component.getState().getWidth()); + int effectiveWidth = Math.round(assignedWidth * (percentSize / 100)); + + reportOuterWidth(component, effectiveWidth); + } + + private static float parsePercent(String size) { + return Float.parseFloat(size.substring(0, size.length() - 1)); + } + public void reportOuterWidth(ComponentConnector component, int outerWidth) { if (!isLayoutRunning()) { throw new IllegalStateException( diff --git a/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java b/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java index e2d92d99e6..d30874b6cc 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java +++ b/src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java @@ -121,11 +121,7 @@ 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); + getLayoutManager().reportHeightAssignedToRelative(paintable, h); } else { wrapperStyle.clearHeight(); } @@ -134,10 +130,6 @@ 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()) { @@ -162,10 +154,7 @@ 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); + getLayoutManager().reportWidthAssignedToRelative(paintable, w); } else { wrapperStyle.clearWidth(); } |