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\"]}}");
}
}