- Author:
- David Nickerson <nickerso@users.sourceforge.net>
- Date:
- 2009-07-16 02:00:03+12:00
- Desc:
- the starting point for the HH tutorial example
- Permanent Source URI:
- https://models.fieldml.org/workspace/a1/rawfile/f6a8f90307388eb4b040ee3566b84d88b59247f7/dojo-presentation/js/dojo/dijit/form/NumberTextBox.js
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){
return (value === null)? NaN : this.inherited(arguments); // setValue(null) should fire onChange(NaN)
},
getValue: function(){
var v = this.inherited(arguments);
if(isNaN(v) && this.textbox.value !== ''){ return undefined; }
return v;
},
value: NaN
}
);
dojo.declare(
"dijit.form.NumberTextBox",
[dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin],
{
// summary:
// A validating, serializable, range-bound text box.
}
);