<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:validators="com.adobe.cairngorm.validation.*"
layout="vertical"
>
<mx:Script>
<![CDATA[
[Bindable]
private var lastnameValidatorEnableFlag : Boolean = true;
]]>
</mx:Script>
<validators:ValidatorGroup id="validatorGroup">
<validators:validators>
<mx:StringValidator
id="firstnameValidator"
required="true"
minLength="3"
source="{ firstnameInput }"
property="text"
triggerEvent="change" />
<mx:StringValidator
id="lastnameValidator"
required="true"
minLength="2"
source="{ lastnameInput }"
property="text"
triggerEvent="change"
enabled="{ lastnameValidatorEnableFlag }"/>
</validators:validators>
<validators:groups>
<validators:ValidatorGroup id="subValidatorGroup">
<validators:validators>
<mx:StringValidator
id="addressValidator"
required="true"
minLength="5"
source="{ addressInput }"
property="text"
triggerEvent="change" />
</validators:validators>
</validators:ValidatorGroup>
</validators:groups>
</validators:ValidatorGroup>
<mx:Form width="300">
<mx:FormItem label="firstname">
<mx:TextInput id="firstnameInput" />
</mx:FormItem>
<mx:FormItem label="lastname">
<mx:TextInput id="lastnameInput" />
</mx:FormItem>
<mx:FormItem label="address">
<mx:TextInput id="addressInput" />
</mx:FormItem>
<mx:FormItem
label="FORM VALIDITY"
backgroundColor="{ validatorGroup.isValid ? 0xFF00 : 0xFF0000 }"
width="100%">
<mx:Label text="{ validatorGroup.isValid }" />
</mx:FormItem>
</mx:Form>
<mx:Button
label="force validation"
click="validatorGroup.validate()" />
<mx:Button
label="reset listeners"
click="validatorGroup.reset()" />
<mx:Button
label="{ validatorGroup.enabled ? 'disable ' : 'enable ' } validatorGroup"
click="validatorGroup.enabled = !validatorGroup.enabled"
fillColors="{ validatorGroup.enabled ? [ 0xFF00, 0xCC00 ] : [ 0xFF0000, 0xCC0000 ] }" />
<mx:Button
label="{ lastnameValidatorEnableFlag ? 'disable ' : 'enable ' } lastnameValidator"
click="lastnameValidatorEnableFlag = !lastnameValidatorEnableFlag; validatorGroup.enableValidator( lastnameValidator, lastnameValidatorEnableFlag );"
fillColors="{ lastnameValidatorEnableFlag ? [ 0xFF00, 0xCC00 ] : [ 0xFF0000, 0xCC0000 ] }" />
</mx:Application>