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;
*/
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%.
*/
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