diff options
Diffstat (limited to 'includes/js/dijit/form/NumberTextBox.js')
-rw-r--r-- | includes/js/dijit/form/NumberTextBox.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/includes/js/dijit/form/NumberTextBox.js b/includes/js/dijit/form/NumberTextBox.js new file mode 100644 index 0000000..f8344a9 --- /dev/null +++ b/includes/js/dijit/form/NumberTextBox.js @@ -0,0 +1,79 @@ +if(!dojo._hasResource["dijit.form.NumberTextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.NumberTextBox"] = true; +dojo.provide("dijit.form.NumberTextBox"); + +dojo.require("dijit.form.ValidationTextBox"); +dojo.require("dojo.number"); + +/*===== +dojo.declare( + "dijit.form.NumberTextBox.__Constraints", + [dijit.form.RangeBoundTextBox.__Constraints, dojo.number.__FormatOptions, dojo.number.__ParseOptions] +); +=====*/ + +dojo.declare( + "dijit.form.NumberTextBoxMixin", + null, + { + // summary: + // A mixin for all number textboxes + + regExpGen: dojo.number.regexp, + + /*===== + // constraints: dijit.form.NumberTextBox.__Constraints + constraints: {}, + ======*/ + + // editOptions: Object + // properties to mix into constraints when the value is being edited + editOptions: { pattern: '#.######' }, + + _onFocus: function(){ + this.setValue(this.getValue(), false); + this.inherited(arguments); + }, + + _formatter: dojo.number.format, + + format: function(/*Number*/ value, /*dojo.number.__FormatOptions*/ constraints){ + // summary: formats the value as a Number, according to constraints + + if(typeof value == "string") { return value; } + if(isNaN(value)){ return ""; } + if(this.editOptions && this._focused){ + constraints = dojo.mixin(dojo.mixin({}, this.editOptions), this.constraints); + } + return this._formatter(value, constraints); + }, + + parse: dojo.number.parse, + /*===== + parse: function(value, constraints){ + // summary: parses the value as a Number, according to constraints + // value: String + // + // constraints: dojo.number.__ParseOptions + }, + =====*/ + + filter: function(/*Number*/ value){ + if(typeof value == "string"){ return this.inherited('filter', arguments); } + return isNaN(value) ? '' : value; + }, + + value: NaN + } +); + +dojo.declare( + "dijit.form.NumberTextBox", + [dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin], + { + // summary: + // A validating, serializable, range-bound text box. + } +); + +} |