topical media & game development

talk show tell print

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.