blob: b81c24ed8d6c914eea695cdcb52e230955479fe2 [file] [log] [blame]
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.IntegerTextbox");
dojo.require("dojo.widget.ValidationTextbox");
dojo.require("dojo.validate.common");
dojo.widget.defineWidget(
"dojo.widget.IntegerTextbox",
dojo.widget.ValidationTextbox,
{
// summary:
// A subclass of ValidationTextbox.
// Over-rides isValid/isInRange to test for integer input.
// signed: String
// The leading plus-or-minus sign. Can be true or false, default is either.
/*=====
signed: "either",
// separator: "",
// The character used as the thousands separator. Default is no separator.
separator: "",
// min: Number
// Minimum signed value. Default is -Infinity
min: undefined,
// max: Number
// Maximum signed value. Default is +Infinity
max: undefined,
=====*/
mixInProperties: function(localProperties, frag){
// First initialize properties in super-class.
dojo.widget.IntegerTextbox.superclass.mixInProperties.apply(this, arguments);
// Get properties from markup attributes, and assign to flags object.
if((localProperties.signed == "true")||
(localProperties.signed == "always")){
this.flags.signed = true;
}else if((localProperties.signed == "false")||
(localProperties.signed == "never")){
this.flags.signed = false;
this.flags.min = 0;
}else{
this.flags.signed = [ true, false ]; // optional
}
if(localProperties.separator){
this.flags.separator = localProperties.separator;
}
if(localProperties.min){
this.flags.min = parseInt(localProperties.min);
}
if(localProperties.max){
this.flags.max = parseInt(localProperties.max);
}
},
isValid: function(){
// summary: Over-ride for integer validation
return dojo.validate.isInteger(this.textbox.value, this.flags);
},
isInRange: function(){
// summary: Over-ride for integer validation
return dojo.validate.isInRange(this.textbox.value, this.flags);
}
}
);