You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2009/12/16 10:01:09 UTC

svn commit: r891162 - /myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java

Author: lofwyr
Date: Wed Dec 16 09:01:08 2009
New Revision: 891162

URL: http://svn.apache.org/viewvc?rev=891162&view=rev
Log:
TOBAGO-815: make Measure.parse() more flexible

Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java?rev=891162&r1=891161&r2=891162&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java Wed Dec 16 09:01:08 2009
@@ -31,9 +31,20 @@
 
   // todo: refactor and consolidate with LayoutToken
 
-  public static Measure parse(String value) {
+  public static Measure parse(Object object) {
+    if (object == null) {
+      return PixelMeasure.ZERO; // fixme: may return a "default measure", or is Pixel the default?
+    }
+    if (object instanceof Measure) {
+      return (Measure) object;
+    }
+    if (object instanceof Number) {
+      return new PixelMeasure(((Number) object).intValue());
+    }
+    String value = object instanceof String ? (String) object : object.toString();
+    
     if (StringUtils.isEmpty(value)) {
-      return new PixelMeasure(0); // fixme: may return a "default measure", or is Pixel the default?
+      return PixelMeasure.ZERO; // fixme: may return a "default measure", or is Pixel the default?
     }
     if (value.toLowerCase().matches("\\d+px")) {// XXX no regexp here: user LayoutTokens.parse !!!
       return new PixelMeasure(Integer.parseInt(value.substring(0, value.length() - 2)));