Apache Flex 4.16.1 API Reference | All Packages | All Classes | Index | Frames No Frames |
CurrencyValidator

Package | spark.validators
Class | public class CurrencyValidator
Inheritance | CurrencyValidator NumberValidatorBase GlobalizationValidatorBase GlobalizationBase AdvancedStyleClient flash.events.EventDispatcher

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The `CurrencyValidator` class ensures that a String represents a valid currency amount according to the conventions of a locale. This class uses the `locale` style for specifying the Locale ID.

The validator can ensure that a currency string falls within a given range (specified by `minValue` and `maxValue` properties), is an integer (specified by `domain` property), is non-negative (specified by `allowNegative` property), correctly specifies negative and positive numbers, has the correct currency ISO code or currency symbol, and does not exceed the specified number of `fractionalDigits`. The validator sets default property values by making use of the `flash.globalization.CurrencyFormatter` class and therefore the locale specific values are supplied by the operating system.

The `flash.globalization.CurrencyFormatter` class uses the underlying operating system to supply the locale specific data. In case the operating system does not provide currency formatting, this class provides fallback functionality.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The `<s:CurrencyValidator>` tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:

      <s:CurrencyValidator
        Properties
        currencyISOCode="locale specified string or customized by user."
        currencyStringError="Currency name is repeated or not correct."
        currencySymbol="locale specified string or customized by user."
        negativeCurrencyFormat="locale specified string or customized by user."
        negativeCurrencyFormatError="The negative format of the input currency is incorrect."
        positiveCurrencyFormat="locale specified string or customized by user."
        positiveCurrencyFormatError="The positive format of the input currency is incorrect."
      />

View the examples

See also

flash.globalization.CurrencyFormatter

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | actualLocaleIDName : String [read-only] The name of the actual locale ID used by this class object. | GlobalizationBase
|  | allowNegative : Boolean Specifies whether negative numbers are permitted. | NumberValidatorBase
|  | className : String [read-only] The name of the component class. | AdvancedStyleClient
|  | currencyISOCode : String The three letter ISO 4217 currency code for the locale being used. | CurrencyValidator
|  | currencyStringError : String Error message when the currency symbol or currency ISO code is repeated or is in the incorrect location. | CurrencyValidator
|  | currencySymbol : String The currency symbol or string for the locale being used. | CurrencyValidator
|  | decimalPointCountError : String Error message when the decimal separator character occurs more than once. | NumberValidatorBase
|  | decimalSeparator : String The decimal separator character used for validating numbers that have a decimal part. | NumberValidatorBase
|  | digitsType : uint Defines the set of digit characters to be used when validating numbers. | NumberValidatorBase
|  | domain : String Type of number to be validated. | NumberValidatorBase
|  | enabled : Boolean Setting this value to false will stop the validator from performing validation. | GlobalizationValidatorBase
|  | fractionalDigits : int The maximum number of digits that can appear after the decimal separator. | NumberValidatorBase
|  | fractionalDigitsError : String Error message when fraction digits exceeds the value specified by the fractionalDigits property. | NumberValidatorBase
|  | greaterThanMaxError : String Error message when the value exceeds the maxValue property. | NumberValidatorBase
|  | groupingSeparator : String The character or string used for the grouping separator. | NumberValidatorBase
|  | id : String The identity of the component. | AdvancedStyleClient
|  | inheritingStyles : Object An object containing the inheritable styles for this non-visual style client instance. | AdvancedStyleClient
|  | invalidCharError : String Error message when the value contains invalid characters. | NumberValidatorBase
|  | invalidFormatCharsError : String Error message when the value contains invalid format characters, which means that it contains a digit or minus sign (-) as a separator character, or it contains two or more consecutive separator characters. | NumberValidatorBase
|  | lastOperationStatus : String [override] [read-only] The status of the most recent operation that this class object performed. | NumberValidatorBase
|  | lessThanMinError : String Error message when the value is less than the minValue. | NumberValidatorBase
|  | listener : Object Specifies the validation listener. | GlobalizationValidatorBase
|  | localeUndefinedError : String Error message when the locale is undefined or is not available. | NumberValidatorBase
|  | maxValue : Number Maximum value for a valid number. | NumberValidatorBase
|  | minValue : Number Minimum value for a valid number. | NumberValidatorBase
|  | moduleFactory : IFlexModuleFactory A module factory is used as context for finding the style manager that controls the styles for this non-visual style client instance. | AdvancedStyleClient
|  | negativeCurrencyFormat : uint A numeric value that indicates a validating pattern for negative currency amounts. | CurrencyValidator
|  | negativeCurrencyFormatError : String Error message when the negative number format of the input currency string is incorrect. | CurrencyValidator
|  | negativeError : String Error message when the value is negative and the allowNegative property is false. | NumberValidatorBase
|  | negativeSymbol : String [read-only] The negative symbol to be used when validating negative values. | NumberValidatorBase
|  | negativeSymbolError : String Error message when the negative symbol is repeated or is in wrong place. | NumberValidatorBase
|  | nonInheritingStyles : Object The beginning of this component's chain of non-inheriting styles. | AdvancedStyleClient
|  | notAnIntegerError : String Error message when the number must be an integer, as defined by the domain property. | NumberValidatorBase
|  | parseError : String Error message when number could not be parsed. | NumberValidatorBase
|  | positiveCurrencyFormat : uint A numeric value that indicates a validating pattern for positive currency amounts. | CurrencyValidator
|  | positiveCurrencyFormatError : String Error message when the positive currency number format is incorrect. | CurrencyValidator
|  | property : String A String specifying the name of the property of the source object that contains the value to validate. | GlobalizationValidatorBase
|  | required : Boolean = true If true, specifies that a missing or empty value causes a validation error. | GlobalizationValidatorBase
|  | requiredFieldError : String Error message when a value is missing and the required property is true. | GlobalizationValidatorBase
|  | source : Object Specifies the object containing the property to validate. | GlobalizationValidatorBase
|  | styleDeclaration : CSSStyleDeclaration The style declaration that holds the inline styles declared by this object. | AdvancedStyleClient
|  | styleManager : IStyleManager2 [read-only] Returns the StyleManager instance used by this component. | AdvancedStyleClient
|  | styleName : Object The source of this object's style values. | AdvancedStyleClient
|  | styleParent : IAdvancedStyleClient A component's parent is used to evaluate descendant selectors. | AdvancedStyleClient
|  | trigger : IEventDispatcher Specifies the component generating the event that triggers the validator. | GlobalizationValidatorBase
|  | triggerEvent : String Specifies the event that triggers the validation. | GlobalizationValidatorBase

Protected Properties
Hide Inherited Protected Properties
Show Inherited Protected Properties

| Property | Defined By
--- | --- | ---
|  | actualListeners : Array [read-only] Contains an Array of listener objects, if any, or the source object. | GlobalizationValidatorBase
|  | actualTrigger : IEventDispatcher [read-only] Contains the trigger object, if any, or the source object. | GlobalizationValidatorBase
|  | resourceManager : IResourceManager [read-only] A reference to the object which manages all of the application's localized resources. | GlobalizationValidatorBase
|  | subFields : Array An Array of Strings containing the names for the properties contained in the value Object passed to the validate() method. | GlobalizationValidatorBase

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | CurrencyValidator() Constructs a new CurrencyValidator object to validate numbers representing currency amounts according to the conventions of a given locale. | CurrencyValidator
|  | clearStyle(styleProp:String):void Deletes a style property from this component instance. | AdvancedStyleClient
|  | getClassStyleDeclarations():Array Returns an Array of CSSStyleDeclaration objects for the type selector that applies to this component, or null if none exist. | AdvancedStyleClient
|  | getStyle(styleProp:String):* [override] Gets a style property that has been set anywhere in this component's style lookup chain. | GlobalizationBase
|  | hasCSSState():Boolean Returns true if currentCSSState is not null. | AdvancedStyleClient
|  | initialized(document:Object, id:String):void The initialized method is called when this class or a class that extends this class is used in an MXML declaration. | AdvancedStyleClient
|  | matchesCSSState(cssState:String):Boolean Returns true if cssState matches currentCSSState. | AdvancedStyleClient
|  | matchesCSSType(cssType:String):Boolean Determines whether this instance is the same as, or is a subclass of, the given type. | AdvancedStyleClient
|  | notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void Propagates style changes to the children of this style client instance. | AdvancedStyleClient
|  | regenerateStyleCache(recursive:Boolean):void Sets up the internal style cache values so that the getStyle() method functions. | AdvancedStyleClient
|  | registerEffects(effects:Array):void Registers the EffectManager as one of the event listeners for each effect event. | AdvancedStyleClient
|  | setStyle(styleProp:String, newValue:*):void Sets a style property on this component instance. | AdvancedStyleClient
|  | styleChanged(styleProp:String):void Detects changes to style properties. | AdvancedStyleClient
|  | stylesInitialized():void Flex calls the stylesInitialized() method when the styles for a component are first initialized. | AdvancedStyleClient
|  | validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent Performs validation and optionally notifies the listeners of the result. | GlobalizationValidatorBase
|  | validateAll(validators:Array):Array [static] Invokes all the validators in the validators Array. | GlobalizationValidatorBase
|  | validateCurrency(value:Object, baseField:String):Array Convenience method for calling a validator from within a custom validation function. | CurrencyValidator

Protected Methods
Show Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | addListenerHandler():void Sets up all of the listeners for the valid and invalid events dispatched from the validator. | GlobalizationValidatorBase
|  | doValidation(value:Object):Array Executes the validation logic of this validator, including validating that a missing or empty value causes a validation error as defined by the value of the required property. | GlobalizationValidatorBase
|  | getValueFromSource():Object Returns the Object to validate. | GlobalizationValidatorBase
|  | handleResults(errorResults:Array):ValidationResultEvent Returns a ValidationResultEvent from the Array of error results. | GlobalizationValidatorBase
|  | isRealValue(value:Object):Boolean Returns true if value is not null. | GlobalizationValidatorBase
|  | removeListenerHandler():void Disconnects all of the listeners for the valid and invalid events dispatched from the validator. | GlobalizationValidatorBase
|  | resourcesChanged():void This method is called when a GlobalizationValidatorBase is constructed, and again whenever the ResourceManager dispatches a "change" Event to indicate that the localized resources have changed in some way. | GlobalizationValidatorBase
|  | setDeferredStyles():void | AdvancedStyleClient

Events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | change | The change event is generated whenever the locale style is changed or another property is set that would cause the format of a number to change or cause updates to the other values available through this class. | GlobalizationBase
|  | invalid | Dispatched when validation fails. | GlobalizationValidatorBase
|  | valid | Dispatched when validation succeeds. | GlobalizationValidatorBase

Styles
Hide Inherited Styles
Show Inherited Styles

| Style | Description | Defined By
--- | --- | --- | ---
|  | locale | Type: String CSS Inheritance: yes The locale identifier that specifies the language, region, script and optionally other related tags and keys. See also http://www.unicode.org/reports/tr35/ | GlobalizationBase

Property Detail

currencyISOCode | property

`currencyISOCode:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The three letter ISO 4217 currency code for the locale being used.

This property is used to validate the currency string or symbol present in the input currency amounts using the `validate()` method.

This property is initialized by the constructor based on the actual locale that is used. When a fallback locale is used this property reflects the preferred, default currency code for the fallback locale.

The default value is dependent on the actual locale and `operating system`.

This property can be used as the source for data binding.

Implementation
`public function get currencyISOCode():String`
`public function set currencyISOCode(value:String):void`

See also

validate()
currencySymbol

currencyStringError | property |

`currencyStringError:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Error message when the currency symbol or currency ISO code is repeated or is in the incorrect location.

The default value is `"Currency name is repeated or not correct."`.

This property can be used as the source for data binding.

Implementation
`public function get currencyStringError():String`
`public function set currencyStringError(value:String):void`

currencySymbol | property |

`currencySymbol:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The currency symbol or string for the locale being used.

This property is used as the currency symbol when validating currency amounts using the `validate()` method.The currency symbol or currency name in the validation string, must match either the value of the `currencySymbol` property or the value of the `currencyISOCode` property.

This property is initialized by the constructor based on the actual locale that is used. When a fallback locale is used this property reflects the preferred, default currency symbol for the fallback locale.

The default value is dependent on the actual locale and `operating system`.

This property can be used as the source for data binding.

Implementation
`public function get currencySymbol():String`
`public function set currencySymbol(value:String):void`

See also

format()
setCurrency()
formattingWithCurrencySymbolIsSafe()
currencyISOCode

negativeCurrencyFormat | property |

`negativeCurrencyFormat:uint`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

A numeric value that indicates a validating pattern for negative currency amounts. This property defines the location of the currency symbol and the negative symbol or parentheses in relation to the numeric portion of the currency amount. This property is used to validate whether or not the input currency string follows this pattern for negative amounts.

The value of this property must be one of the constants defined in the table below.

- The '¤' symbol represents the location of the currencyISOCode or the currencySymbol in the currency string.
- The '-' character represents the location of the negativeNumberSymbol.
- The 'n' character represents the currency amount.

Negative currency format type | Formatting pattern
0 | (¤n)
1 | -¤n
2 | ¤-n
3 | ¤n-
4 | (n¤)
5 | -n¤
6 | n-¤
7 | n¤-
8 | -n ¤
9 | -¤ n
10 | n ¤-
11 | ¤ n-
12 | ¤ -n
13 | n- ¤
14 | (¤ n)
15 | (n ¤)

The default value is dependent on the actual locale and operating system.

This property can be used as the source for data binding.

Implementation
`public function get negativeCurrencyFormat():uint`
`public function set negativeCurrencyFormat(value:uint):void`
Throws

| `ArgumentError` — if the assigned value is not between 0 and 15.

See also

format()
currencySymbol
negativeSymbol

negativeCurrencyFormatError | property |

`negativeCurrencyFormatError:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Error message when the negative number format of the input currency string is incorrect.

The default value is `"The negative format of the input currency is incorrect."`.

This property can be used as the source for data binding.

Implementation
`public function get negativeCurrencyFormatError():String`
`public function set negativeCurrencyFormatError(value:String):void`

positiveCurrencyFormat | property |

`positiveCurrencyFormat:uint`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

A numeric value that indicates a validating pattern for positive currency amounts. This property defines the location of currency symbol relative to the numeric portion of the currency amount. This property is used to validate if the input currency string follows this pattern for positive amounts.

The value of this property must be one of the constants defined in the table below.

- The '¤' symbol represents the location of the `currencyISOCode` or the `currencySymbol` in the currency string.
- The 'n' character represents the location of the `currencyISOCode` or the `currencySymbol` in the currency string.

Positive currency format type | Formatting pattern
0 | ¤n
1 | n¤
2 | ¤ n
3 | n ¤

The default value is dependent on the actual locale and operating system.

This property can be used as the source for data binding.

Implementation
`public function get positiveCurrencyFormat():uint`
`public function set positiveCurrencyFormat(value:uint):void`
Throws

| `ArgumentError` — if the assigned value is not between 0 and 3.

See also

currencySymbol
format()

positiveCurrencyFormatError | property |

`positiveCurrencyFormatError:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Error message when the positive currency number format is incorrect.

The default value is `"The positive format of the input currency is incorrect."`.

This property can be used as the source for data binding.

Implementation
`public function get positiveCurrencyFormatError():String`
`public function set positiveCurrencyFormatError(value:String):void`
Constructor Detail

CurrencyValidator | () | Constructor

`public function CurrencyValidator()`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Constructs a new `CurrencyValidator` object to validate numbers representing currency amounts according to the conventions of a given locale.

The locale for this class is supplied by the `locale` style property. The `locale` style can be set in several ways:

- Inheriting the style from a `UIComponent` by calling the `UIComponent`'s `addStyleClient` method.
- By using the class in an MXML declaration and inheriting the locale from the document that contains the declaration.

          <fx:Declarations>
                 <s:CurrencyValidator id="cv" />
          </fx:Declarations>

- By using an MXML declaration and specifying the locale value in the list of assignments.

          <fx:Declarations>
              <s:CurrencyValidator id="cv_turkish" locale="tr-TR" />
          </fx:Declarations>

- Calling the setStyle method, For example: `cv.setStyle("locale", "tr-TR")`

If the `locale` style is not set by one of the above techniques, the instance of this class will be added as a `StyleClient` to the `topLevelApplication` and will therefore inherit the `locale` style from the `topLevelApplication` object when the `locale` dependent property getter or `locale` dependent method is called.

The properties related to the currency string format are set to default values based on the locale.

NOTE: When a fallback locale is used, the currency properties are set to default values of en_US locale, and therefore might not match the currency for which the validation is intended. It is a good idea to examine the `currencySymbol` and `currencyISOCode` property values before validating a currency amount.

See also

flash.globalization.CurrencyFormatter.actualLocaleIDName
Method Detail

validateCurrency | () | method

`public function validateCurrency(value:Object, baseField:String):Array`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Convenience method for calling a validator from within a custom validation function. Each of the standard Flex validators has a similar convenience method. Caller must check the `ValidationResult` objects in the returned array for validation status.

Parameters

| `value:Object` — A currency number string to validate.The number string can use unicode minus symbols 0x2212, 0xFE63, 0xFF0D besides ascii minus.
| `baseField:String` — Text representation of the subfield specified in the `value` parameter. For example, if the `value` parameter specifies value.number, the `baseField` value is "number".

Returns

| `Array` — An Array of `ValidationResult` objects, with one `ValidationResult` object for each field examined by the validator.

See also

mx.validators.ValidationResult
flash.globalization.CurrencyFormatter
Examples
CurrencyValidatorExample1.mxml

    <?xml version="1.0" encoding="utf-8"?>
    <!--

      Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

    -->
    <!-- Sample program for spark.formatters.NumberValidator -->
    <s:Application
        xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx">

        <fx:Declarations>
            <s:CurrencyValidator id="currencyValidator" source='{inputNumber}'
                               property="text" trigger='{validateBtn}'
                               triggerEvent="click" />
            <s:CurrencyFormatter id="currencyFormatter" useCurrencySymbol="true"
                               useGrouping="true"/>
        </fx:Declarations>

        <fx:Script>
            <![CDATA[
                [Bindable]
                private var number:Number = 123456789.12;
            ]]>
        </fx:Script>

        <mx:Form>
            <mx:FormItem label="Input Locale ID Name">
                <mx:HBox>
                    <s:TextInput id="inputLocaleIDName" text="en-US"/>
                    <!-- Upon button click, sets the locale style on the document
                    UI component. The formatter will inherit this style. -->
                    <s:Button click="setStyle('locale', inputLocaleIDName.text);"
                              label="Apply"/>
                </mx:HBox>
                <mx:Text text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
            </mx:FormItem>

            <mx:FormItem label="Allow Negative">
                <mx:CheckBox id="alowNegative" selected="true"
                             change="currencyValidator.allowNegative = alowNegative.selected"/>
            </mx:FormItem>

            <mx:FormItem label="Fractional Digits">
                <mx:TextInput id="fractionalDigits" text='{currencyValidator.fractionalDigits}'
                              change="currencyFormatter.fractionalDigits =
                              currencyValidator.fractionalDigits = Number(fractionalDigits.text)"/>
            </mx:FormItem>

            <mx:FormItem label="Currency Symbol">
                <mx:TextInput id="currencySymbol" text='{currencyValidator.currencySymbol}'
                              change="currencyFormatter.currencySymbol =
                              currencyValidator.currencySymbol = currencySymbol.text"/>
            </mx:FormItem>

            <mx:FormItem label="Actual Locale ID Name">
                <mx:Text text="{currencyValidator.actualLocaleIDName}"/>
            </mx:FormItem>

            <mx:FormItem label="Enter currency amount" >
                <mx:HBox>
                    <mx:TextInput id="inputNumber" />
                    <mx:Button id="validateBtn" label="Validate" />
                </mx:HBox>
            </mx:FormItem>

            <mx:FormItem label="Example currency">
                <mx:Text text="{currencyFormatter.format(123456789.12)}"/>
            </mx:FormItem>
        </mx:Form>
    </s:Application>

Wed Nov 15 2017, 09:50 AM +01:00