topical media & game development
professional-flex-code-09-ValidateModelData2.mx
professional-flex-code-09-ValidateModelData2.mx
[swf]
flex
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundColor="#FFFFFF" width="550" height="300">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
private var validator:ValidationResultEvent;
// Handle validation of data model
private function validate():void{
var isValid:Boolean=true;
if(!this.validateDataModel()){
isValid=false;
}
Alert.show("Results = "+isValid,"Validation");
}
// Check each field that needs validation and return true|false
private function validateDataModel():Boolean{
var isValid:Boolean = true;
validator = fNameValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
validator = lNameValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
validator = addressValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
validator = cityValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
validator = stateValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
validator = zipValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
validator = emailValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
validator = phoneValidator.validate();
if(validator.type == ValidationResultEvent.INVALID){
isValid = false;
}
return isValid;
}
]]>
</mx:Script>
<mx:Model id="contactmodel">
<contact>
<fname>{fnametxt.text}</fname>
<lname>{lnametxt.text}</lname>
<address>{addresstxt.text}</address>
<city>{citytxt.text}</city>
<state>{statetxt.text}</state>
<zip>{ziptxt.text}</zip>
<phone>{phonetxt.text}</phone>
<email>{emailtxt.text}</email>
</contact>
</mx:Model>
<mx:Validator id="fNameValidator" required="true" source="{contactmodel}" property="fname" listener="{fnametxt}"/>
<mx:Validator id="lNameValidator" required="true" source="{contactmodel}" property="lname" listener="{lnametxt}"/>
<mx:Validator id="addressValidator" required="true" source="{contactmodel}" property="address" listener="{addresstxt}"/>
<mx:Validator id="cityValidator" required="true" source="{contactmodel}" property="city" listener="{citytxt}"/>
<mx:Validator id="stateValidator" required="true" source="{contactmodel}" property="state" listener="{statetxt}"/>
<mx:ZipCodeValidator id="zipValidator" required="true" source="{contactmodel}" property="zip" listener="{ziptxt}"/>
<mx:EmailValidator id="emailValidator" source="{contactmodel}" property="email" listener="{emailtxt}"/>
<mx:PhoneNumberValidator id="phoneValidator" source="{contactmodel}" property="phone" listener="{phonetxt}"/>
<mx:Panel title="Contact Info" width="500" height="250">
<mx:Form>
<mx:FormItem label="Name" direction="horizontal">
<mx:TextInput id="fnametxt" />
<mx:TextInput id="lnametxt" />
</mx:FormItem>
<mx:FormItem label="Address">
<mx:TextInput id="addresstxt"/>
</mx:FormItem>
<mx:FormItem label="City State, Zip" direction="horizontal">
<mx:TextInput id="citytxt"/>
<mx:TextInput id="statetxt" width="20"/>
<mx:TextInput id="ziptxt" width="50"/>
</mx:FormItem>
<mx:FormItem label="Phone">
<mx:TextInput id="phonetxt"/>
</mx:FormItem>
<mx:FormItem label="Email">
<mx:TextInput id="emailtxt"/>
</mx:FormItem>
<mx:Button id="validatebtn" label="Validate Data Model" click="validate()"/>
</mx:Form>
</mx:Panel>
</mx:Application>
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.