/* 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); } } );