summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-04-03 16:37:27 +0300
committerLeif Åstrand <leif@vaadin.com>2012-04-03 16:37:27 +0300
commite76c3b037c706eebdca4c3eefe7c08a3079598da (patch)
tree863fc95191647382e152f838629420f1545c4bac
parent3cdd918f35d7923576699c524d0f964b08913e4f (diff)
downloadvaadin-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.java24
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/AbsoluteLayoutConnector.java15
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();
}