From: Matti Tahvonen Date: Thu, 31 Jan 2008 10:53:52 +0000 (+0000) Subject: setWidth(String) and setHeight(String) methods added to Sizeable X-Git-Tag: 6.7.0.beta1~5136 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=09837a9ad03cd073436c73359886e29176b805b9;p=vaadin-framework.git setWidth(String) and setHeight(String) methods added to Sizeable svn changeset:3680/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/Sizeable.java b/src/com/itmill/toolkit/terminal/Sizeable.java index c5cb14acd2..b6dbb187ad 100644 --- a/src/com/itmill/toolkit/terminal/Sizeable.java +++ b/src/com/itmill/toolkit/terminal/Sizeable.java @@ -41,12 +41,12 @@ public interface Sizeable { public static final int UNITS_EX = 4; /** - * Unit code representing millimetres. + * Unit code representing millimeters. */ public static final int UNITS_MM = 5; /** - * Unit code representing centimetres. + * Unit code representing centimeters. */ public static final int UNITS_CM = 6; @@ -156,6 +156,22 @@ public interface Sizeable { */ public void setHeightUnits(int units); + /** + * TODO + * + * @param height + * in CSS style string representation + */ + public void setHeight(String height); + + /** + * TODO + * + * @param width + * in CSS style string representation + */ + public void setWidth(String width); + /** * Sets the size to 100% x 100%. */ diff --git a/src/com/itmill/toolkit/ui/AbstractComponent.java b/src/com/itmill/toolkit/ui/AbstractComponent.java index 137e48a0c2..dc305af320 100644 --- a/src/com/itmill/toolkit/ui/AbstractComponent.java +++ b/src/com/itmill/toolkit/ui/AbstractComponent.java @@ -1109,4 +1109,49 @@ public abstract class AbstractComponent implements Component, MethodEventSource setWidth(width); setWidthUnits(unit); } + + public void setWidth(String width) { + int[] p = parseStringSize(width); + setWidth(p[0]); + setWidthUnits(p[1]); + } + + public void setHeight(String width) { + int[] p = parseStringSize(width); + setHeight(p[0]); + setHeightUnits(p[1]); + } + + /* + * returns array with size in index 0 unit in index 1 + */ + private static int[] parseStringSize(String s) { + int[] values = new int[2]; + s = s.trim(); + if (s.contains("%")) { + values[1] = UNITS_PERCENTAGE; + values[0] = (int) Float.parseFloat(s.substring(0, s.indexOf("%"))); + } else { + values[0] = (int) Float.parseFloat(s.substring(0, s.length() - 2)); + if (s.endsWith("px")) { + values[1] = UNITS_PIXELS; + } else if (s.endsWith("em")) { + values[1] = UNITS_EM; + } else if (s.endsWith("ex")) { + values[1] = UNITS_EX; + } else if (s.endsWith("in")) { + values[1] = UNITS_INCH; + } else if (s.endsWith("cm")) { + values[1] = UNITS_CM; + } else if (s.endsWith("mm")) { + values[1] = UNITS_MM; + } else if (s.endsWith("pt")) { + values[1] = UNITS_POINTS; + } else if (s.endsWith("pc")) { + values[1] = UNITS_PICAS; + } + } + return values; + } + } \ No newline at end of file diff --git a/src/com/itmill/toolkit/ui/CustomComponent.java b/src/com/itmill/toolkit/ui/CustomComponent.java index 27c99f2f5c..ef531aa12f 100644 --- a/src/com/itmill/toolkit/ui/CustomComponent.java +++ b/src/com/itmill/toolkit/ui/CustomComponent.java @@ -559,4 +559,14 @@ public class CustomComponent implements Component { } + public void setHeight(String height) { + // TODO Auto-generated method stub + + } + + public void setWidth(String width) { + // TODO Auto-generated method stub + + } + }