You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by sm...@apache.org on 2011/03/25 02:30:59 UTC
svn commit: r1085235 - in
/pivot/trunk/demos/src/org/apache/pivot/demos/roweditor:
AmountBindMapping.java CurrencyValidator.java RowEditorDemo.json
Author: smartini
Date: Fri Mar 25 01:30:59 2011
New Revision: 1085235
URL: http://svn.apache.org/viewvc?rev=1085235&view=rev
Log:
PIVOT-681
Modified:
pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/AmountBindMapping.java
pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/CurrencyValidator.java
pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/RowEditorDemo.json
Modified: pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/AmountBindMapping.java
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/AmountBindMapping.java?rev=1085235&r1=1085234&r2=1085235&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/AmountBindMapping.java (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/AmountBindMapping.java Fri Mar 25 01:30:59 2011
@@ -17,11 +17,12 @@
package org.apache.pivot.demos.roweditor;
import java.text.DecimalFormat;
+import java.text.ParseException;
import org.apache.pivot.wtk.TextInput;
public class AmountBindMapping implements TextInput.TextBindMapping {
- public static final DecimalFormat FORMAT = new DecimalFormat("0.00");
+ protected static final DecimalFormat FORMAT = new DecimalFormat("0.00");
@Override
public String toString(Object value) {
@@ -30,6 +31,14 @@ public class AmountBindMapping implement
@Override
public Object valueOf(String text) {
- return Float.valueOf(text);
+ // in case of an empty string to validate, return a default value, to avoid an NPE
+ if (text.length() < 1)
+ return new String("");
+
+ try {
+ return FORMAT.parse(text);
+ } catch (ParseException ex) {
+ throw new NumberFormatException(ex.getMessage());
+ }
}
}
Modified: pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/CurrencyValidator.java
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/CurrencyValidator.java?rev=1085235&r1=1085234&r2=1085235&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/CurrencyValidator.java (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/CurrencyValidator.java Fri Mar 25 01:30:59 2011
@@ -17,6 +17,8 @@
package org.apache.pivot.demos.roweditor;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.ParsePosition;
import org.apache.pivot.wtk.validation.Validator;
@@ -24,17 +26,23 @@ import org.apache.pivot.wtk.validation.V
* Validates that text represents a valid dollar value.
*/
public class CurrencyValidator implements Validator {
+ protected static final DecimalFormat FORMAT = new DecimalFormat("0.00");
+ static {
+ FORMAT.setParseBigDecimal(true);
+ }
+
@Override
public boolean isValid(String text) {
boolean valid = true;
if (text.length() > 0) {
- try {
- BigDecimal numericAmount = new BigDecimal(text);
- valid = (numericAmount.scale() <= 2 && numericAmount.signum() >= 0);
- } catch (NumberFormatException ex) {
- valid = false;
- }
+ ParsePosition parsePosition = new ParsePosition(0);
+ BigDecimal numericAmount = (BigDecimal) FORMAT.parse(text, parsePosition);
+ valid = (numericAmount != null &&
+ numericAmount.scale() <= 2 &&
+ numericAmount.signum() >= 0 &&
+ parsePosition.getErrorIndex() == -1 &&
+ parsePosition.getIndex() == text.length());
}
return valid;
Modified: pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/RowEditorDemo.json
URL: http://svn.apache.org/viewvc/pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/RowEditorDemo.json?rev=1085235&r1=1085234&r2=1085235&view=diff
==============================================================================
--- pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/RowEditorDemo.json (original)
+++ pivot/trunk/demos/src/org/apache/pivot/demos/roweditor/RowEditorDemo.json Fri Mar 25 01:30:59 2011
@@ -24,6 +24,6 @@
},
formats: {
- currency: "$#,##0.00"
+ currency: "\u00A4#,##0.00"
}
}