You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2007/05/16 17:12:15 UTC
svn commit: r538628 - in /tapestry/tapestry4/trunk:
tapestry-examples/Workbench/src/context/WEB-INF/
tapestry-framework/src/java/org/apache/tapestry/form/translator/
tapestry-framework/src/java/org/apache/tapestry/form/validator/
tapestry-framework/src...
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\"]}}");
}
}