blob: e5c7be1477c97d3379e0cdcee44a149cce6431c8 [file] [log] [blame]
<s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
updateComplete="updateCompleteHandler(event)"
width="100%" height="100%" >
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
import mx.events.ValidationResultEvent;
import mx.validators.ValidationResult;
import spark.validators.supportClasses.GlobalizationValidatorBase;
public var nvScript:spark.validators.NumberValidator = new spark.validators.NumberValidator();
protected function updateCompleteHandler(event:FlexEvent):void
{
this.addStyleClient(nvScript);
}
// Define the validator Array.
private var _validatorsArr:Array;
protected function uiBTvalidateNumber_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
var resultArr:Array ;
if ('nvDefault' == uiProgType.text) { // validate a normal Number Object
resultArr = nvDefault.validateNumber( uiTI.text , null ) ;
} else if ( 'nvScript' == uiProgType.text){ // validate a UI object , like TextInput
resultArr = nvScript.validateNumber(tiScript.text , "text") ;
} else if ( 'nvNull' == uiProgType.text){ //validateNumber(null , null)
try{
resultArr = nvDefault.validateNumber(null , null ) ;
}catch ( e:Error){
uiLb.text = e.toString() ;
}
}else if ( 'nonString' == uiProgType.text){ //validateNumber(non-String-object , null)
try{
resultArr = nvDefault.validateNumber(uiTI , null ) ;
}catch ( e:Error){
uiLb.text = e.toString() ;
}
}
if (resultArr != null) {
if ( (resultArr.length == 1) && ( resultArr[0].isError == true ) ) {
uiLb.text = new String("Error");
}else if ( (resultArr.length == 1) && ( resultArr[0].isError == false ) ) {
uiLb.text = new String("noError");
}else if ( resultArr.length == 0 ) {
uiLb.text = new String("noValidateError");
}
} else {
uiLb.text = "NoResult";
}
return ;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- This validator is used for most of test cases -->
<!--s:NumberValidator id="nvDefault" source="{uiTI}"/ -->
<s:NumberValidator id="nvDefault"/>
</fx:Declarations>
<!-- This is the source for nvDefault in declaration tag -->
<mx:TextInput id="uiTI" />
<!-- This is the source for nvProg -->
<mx:TextInput id="uiProgType" />
<!-- This is the source for nvScript validator -->
<mx:TextInput id="tiScript" />
<mx:Button id="uiBTvalidateNumber" label="validate number" click="uiBTvalidateNumber_clickHandler(event)" />
<!-- Label is used to display some validate result-->
<mx:Label id="uiLb" />
<mx:Label id="uiBindableLb" text="{(new ArrayCollection(nvDefault.validateNumber(uiTI, null ))).getItemAt(0).isError}" />
<mx:Label id="uiScriptBindableLb" text="{(new ArrayCollection(nvDefault.validateNumber(tiScript.text, 'text' )))..getItemAt(0).isError}" />
</s:VGroup>