Author: jkuhnert
Date: Wed May 16 08:12:14 2007
New Revision: 538628

URL: http://svn.apache.org/viewvc?view=rev&rev=538628
Log:
Fixes TAPESTRY-1468.  This was actually a bug in Dojo but I've only fixed it 
locally since the 0.4 series is pretty much dead in favor of the new 0.9 stuff.

Modified:
    
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Max.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Min.java
    
tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.2/src/i18n/number.js
    
tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form/validation.js
    
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java

Modified: 
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page?view=diff&rev=538628&r1=538627&r2=538628
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
 Wed May 16 08:12:14 2007
@@ -59,7 +59,7 @@
   <component id="inputDouble" type="TextField">
     <binding name="value" value="visit.doubleValue"/>
     <binding name="translator" value="translator:number,pattern=#.#"/>
-    <binding name="validators" value="validators:required,min=3.14,max=27.5"/>
+    <binding name="validators" 
value="validators:required,min=3.14,max=4627.5"/>
     <binding name="displayName" value="literal:Double Field"/>
   </component>
 

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java?view=diff&rev=538628&r1=538627&r2=538628
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java
 Wed May 16 08:12:14 2007
@@ -135,6 +135,9 @@
 
             grouping += ",separator:" + 
JSONObject.quote(format.getDecimalFormatSymbols().getGroupingSeparator());
             grouping += ",groupSize:" + format.getGroupingSize();
+        } else {
+
+            grouping += ",separator:\"\"";
         }
 
         cons.accumulate(field.getClientId(),

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Max.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Max.java?view=diff&rev=538628&r1=538627&r2=538628
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Max.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Max.java
 Wed May 16 08:12:14 2007
@@ -108,8 +108,12 @@
             DecimalFormat format = 
translator.getDecimalFormat(context.getLocale());
 
             if (format.isGroupingUsed()) {
+
                 grouping += ",separator:" + 
JSONObject.quote(format.getDecimalFormatSymbols().getGroupingSeparator());
                 grouping += ",groupSize:" + format.getGroupingSize();
+            } else {
+
+                grouping += ",separator:\"\"";
             }
 
             symbols = format.getDecimalFormatSymbols();

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Min.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Min.java?view=diff&rev=538628&r1=538627&r2=538628
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Min.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Min.java
 Wed May 16 08:12:14 2007
@@ -108,8 +108,12 @@
             DecimalFormat format = 
translator.getDecimalFormat(context.getLocale());
 
             if (format.isGroupingUsed()) {
+
                 grouping += ",separator:" + 
JSONObject.quote(format.getDecimalFormatSymbols().getGroupingSeparator());
                 grouping += ",groupSize:" + format.getGroupingSize();
+            } else {
+
+                grouping += ",separator:\"\"";
             }
             
             symbols = format.getDecimalFormatSymbols();

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.2/src/i18n/number.js
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.2/src/i18n/number.js?view=diff&rev=538628&r1=538627&r2=538628
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.2/src/i18n/number.js
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo-0.4.2/src/i18n/number.js
 Wed May 16 08:12:14 2007
@@ -1,5 +1,4 @@
-
-dojo.provide("dojo.i18n.number");dojo.require("dojo.experimental");dojo.experimental("dojo.i18n.number");dojo.require("dojo.regexp");dojo.require("dojo.i18n.common");dojo.require("dojo.lang.common");dojo.i18n.number.format
 = function(value, flags , locale ){flags = (typeof flags == "object") ? flags 
: {};var formatData = 
dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE, 
locale);if (typeof flags.separator == "undefined") {flags.separator = 
formatData[1];}
+dojo.provide("dojo.i18n.number");dojo.require("dojo.experimental");dojo.require("dojo.regexp");dojo.require("dojo.i18n.common");dojo.require("dojo.lang.common");dojo.i18n.number.format
 = function(value, flags , locale ){flags = (typeof flags == "object") ? flags 
: {};var formatData = 
dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE, 
locale);if (typeof flags.separator == "undefined") {flags.separator = 
formatData[1];}
 if (typeof flags.decimal == "undefined") {flags.decimal = formatData[2];}
 if (typeof flags.groupSize == "undefined") {flags.groupSize = formatData[3];}
 if (typeof flags.groupSize2 == "undefined") {flags.groupSize2 = formatData[4];}
@@ -17,7 +16,8 @@
 if (typeof flags.validate == "undefined") {flags.validate = true;}
 if (flags.validate && !dojo.i18n.number.isReal(value, locale, flags)) {return 
Number.NaN;}
 var numbers = value.split(flags.decimal);if (numbers.length > 2){return 
Number.NaN; }
-var whole = Number(numbers[0].replace(new RegExp("\\" + flags.separator, "g"), 
""));var fract = (numbers.length == 1) ? 0 : Number(numbers[1]) / Math.pow(10, 
String(numbers[1]).length);return whole + fract;};dojo.i18n.number.isInteger = 
function(value, locale , flags ) {flags = (typeof flags == "object") ? flags : 
{};var formatData = 
dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE, 
locale);if (typeof flags.separator == "undefined") {flags.separator = 
formatData[1];}
+var whole; if (flags.separator != ""){ whole = Number(numbers[0].replace(new 
RegExp("\\" + flags.separator, "g"), ""));} else {whole = Number(numbers[0]);}
+var fract = (numbers.length == 1) ? 0 : Number(numbers[1]) / Math.pow(10, 
String(numbers[1]).length);return whole + fract;};dojo.i18n.number.isInteger = 
function(value, locale , flags ) {flags = (typeof flags == "object") ? flags : 
{};var formatData = 
dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE, 
locale);if (typeof flags.separator == "undefined") {flags.separator = 
formatData[1];}
 else if (dojo.lang.isArray(flags.separator) && flags.separator.length 
===0){flags.separator = [formatData[1],""];}
 if (typeof flags.groupSize == "undefined") {flags.groupSize = formatData[3];}
 if (typeof flags.groupSize2 == "undefined") {flags.groupSize2 = formatData[4];}

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form/validation.js
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form/validation.js?view=diff&rev=538628&r1=538627&r2=538628
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form/validation.js 
(original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form/validation.js 
Wed May 16 08:12:14 2007
@@ -275,9 +275,10 @@
     *  the locale settings configured for the current page.
     */
     greaterThanOrEqual:function(value, minString, flags){
+        flags.validate=false;
         var min = dojo.i18n.number.parse(minString, null, flags);
         var num = dojo.i18n.number.parse(value, null, flags);
-        if ("NaN" == num) { return false; }
+        if (Number.NaN == num) { return false; }
 
         return num >= min;
     },
@@ -288,9 +289,10 @@
     *  the locale settings configured for the current page.
     */
     lessThanOrEqual:function(value, maxString, flags){
+        flags.validate=false;
         var max = dojo.i18n.number.parse(maxString, null, flags);
         var num = dojo.i18n.number.parse(value, null, flags);
-        if ("NaN" == num) { return false; }
+        if (Number.NaN == num) { return false; }
 
         return num <= max;
     }

Modified: 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java?view=diff&rev=538628&r1=538627&r2=538628
==============================================================================
--- 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java
 (original)
+++ 
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java
 Wed May 16 08:12:14 2007
@@ -255,7 +255,7 @@
         
         assertEquals(json.toString(),
                 "{\"constraints\":{\"numberField\":" +
-                "[[dojo.i18n.number.isReal,null,{places:0,decimal:\".\"}]]}," +
+                
"[[dojo.i18n.number.isReal,null,{places:0,decimal:\".\",separator:\"\"}]]}," +
                 "\"numberField\":{\"constraints\":[\"invalid number 
message\"]}}");
     }
 
@@ -328,8 +328,8 @@
         verify();
         
         assertEquals(json.toString(),
-                "{\"constraints\":{\"myfield\":" +
-                "[[dojo.i18n.number.isReal,null,{places:0,decimal:\".\"}]]}," +
+                
"{\"constraints\":{\"myfield\":[[dojo.i18n.number.isReal,null," +
+                "{places:0,decimal:\".\",separator:\"\"}]]}," +
                 "\"myfield\":{\"constraints\":[\"Blah Blah 'Field Name' 
Blah.\"]}}");
     }
     
@@ -364,8 +364,9 @@
         verify();
         
         assertEquals(json.toString(),
-                "{\"trim\":[\"myfield\"],\"constraints\":{\"myfield\":" +
-                "[[dojo.i18n.number.isReal,null,{places:0,decimal:\".\"}]]}," +
+                "{\"trim\":[\"myfield\"]," +
+                "\"constraints\":{\"myfield\":[[dojo.i18n.number.isReal,null," 
+
+                "{places:0,decimal:\".\",separator:\"\"}]]}," +
                 "\"myfield\":{\"constraints\":[\"invalid number message\"]}}");
     }
 }


Reply via email to