Flash_and_Flex_03_2009

Flex Application Architecture

Listing 7. LoginCommand.as

package com.jonniespratley.flexcontacts.commands { import com.adobe.cairngorm.commands.ICommand; import com.adobe.cairngorm.control.CairngormEvent; import com.jonniespratley.flexcontacts.events.GetContactsEvent; import com.jonniespratley.flexcontacts.events.LoginEvent; import com.jonniespratley.flexcontacts.model.FlexContactsModelLocator; import com.jonniespratley.flexcontacts.vo.*; import mx.controls.Alert; public class LoginCommand implements ICommand {

private var model:FlexContactsModelLocator = FlexContactsModelLocator.getInstance(); public function execute( event:CairngormEvent ) : void { trace( 'LoginCommand Executing' ); var evt:LoginEvent = event as LoginEvent; if ( evt.aUser.username == "admin" && evt.aUser.password == "admin" ) { model.isLoggedIn = true ; model.workflowState = FlexContactsModelLocator.MAIN_SCREEN; } else {

Alert.show( "Username: " + evt.aUser.username + "\nPassword was not valid.", "Login Error" ); model.isLoggedIn = false ; model.workflowState = FlexContactsModelLocator.LOGIN_SCREEN; }

}

}

}

Listing 8. FlexContactsController.as

package com.jonniespratley.flexcontacts.control {

import com.adobe.cairngorm.control.FrontController; import com.jonniespratley.flexcontacts.commands.*; import com.jonniespratley.flexcontacts.events.*; public final class FlexContactsController extends FrontController { public function FlexContactsController() { initilize(); } private function initilize():void {

this .addCommand( GetContactsEvent.GET_CONTACTS_EVENT, GetContactsCommand ); this .addCommand( LoginEvent.LOGIN_EVENT, LoginCommand );

trace( 'Registering Events to Commands' );

} }

}

03/2009 (5)

57

Made with FlippingBook HTML5