| /* |
| 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.CurrencyTextbox"); |
| |
| dojo.require("dojo.widget.IntegerTextbox"); |
| dojo.require("dojo.validate.common"); |
| |
| dojo.widget.defineWidget( |
| "dojo.widget.CurrencyTextbox", |
| dojo.widget.IntegerTextbox, |
| { |
| // summary: |
| // A subclass that extends IntegerTextbox. |
| // Over-rides isValid/isInRange to test if input denotes a monetary value . |
| |
| /*===== |
| // fractional: Boolean |
| // The decimal places (e.g. for cents). Can be true or false, optional if omitted. |
| fractional: undefined, |
| |
| // symbol: String |
| // A currency symbol such as Yen "???", Pound "???", or the Euro "???". Default is "$". |
| symbol: "$", |
| |
| // separator: String |
| // Default is "," instead of no separator as in IntegerTextbox. |
| 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.CurrencyTextbox.superclass.mixInProperties.apply(this, arguments); |
| |
| // Get properties from markup attributes, and assign to flags object. |
| if(localProperties.fractional){ |
| this.flags.fractional = (localProperties.fractional == "true"); |
| }else if(localProperties.cents){ |
| dojo.deprecated("dojo.widget.IntegerTextbox", "use fractional attr instead of cents", "0.5"); |
| this.flags.fractional = (localProperties.cents == "true"); |
| } |
| if(localProperties.symbol){ |
| this.flags.symbol = localProperties.symbol; |
| } |
| if(localProperties.min){ |
| this.flags.min = parseFloat(localProperties.min); |
| } |
| if(localProperties.max){ |
| this.flags.max = parseFloat(localProperties.max); |
| } |
| }, |
| |
| isValid: function(){ |
| // summary: Over-ride for currency validation |
| return dojo.validate.isCurrency(this.textbox.value, this.flags); |
| }, |
| isInRange: function(){ |
| // summary: Over-ride for currency validation |
| return dojo.validate.isInRange(this.textbox.value, this.flags); |
| } |
| } |
| ); |