22 JanCairngorm Architecture

There is 3 folder occurred.

1.control
2.model
3.view

view
—————————————————————————————————————

folder contain the UI part of the project.
like custom components
<control:Controller id=”controller”/>
<delegates:Services id=”service”/>
add thes file in main mxml file

call an event from view
var recentlyViewDocEvent:RecentlyViewDocEvent = new RecentlyViewDocEvent(RecentlyViewDocEvent.GET_RECENTLY_VIEW_DOC);
recentlyViewDocEvent.IdentityName = “Home”;
CairngormEventDispatcher.getInstance().dispatchEvent(recentlyViewDocEvent);
recentlyViewDocEvent = null;

model
—————————————————————————————————————
modules

modules can call with
[Bindable]private var model:ModelLocater= ModelLocater.getInstance();
it contain each component model locater

utils
it contain some utils files

vo
Data Transfer Objects are called vo
then the main application model locater

control

————————————————————————————————————————————————————

Controller.as file is main file

public class Controller extends FrontController
{
public function Controller()
{
addCommand(Controller.LOOKUP,LookUpCommand);
}
public static const LOOKUP:String = “lookUp”;
}

commands

——————————————————————————————————————————-

it contain all command files

public class LookUpCommand implements IResponder, ICommand
{

public function execute(event:CairngormEvent):void
{
reqEvent = event as LookupEvent;
var delegate:LookUpDelegate = new LookUpDelegate (this);
requestType = reqEvent.reqString;

switch(requestType)
{
case LookupEvent.GET_PROGRESS_MAP_INFO :
delegate.getProgressMapInfo();
break

}
}

public function result(data:Object):void
{
switch(requestType)
{
case LookupEvent.GET_PROGRESS_MAP_INFO :
model.pointOfInterest = data.result.pointOfInterest;
model.plotPoints = data.result.plotPoints;
break

}
}

public function fault(info:Object):void
{
Alert.show(info.message.faultDetail);
}

delegates

——————————————————————————————————————————————-

it contain main service.mxml and other delegate pages

service

Delegate
file contain

public class LookUpDelegate
{
private var responder:IResponder;
private var roCategory:RemoteObject;

[Bindable]private var model:AdminModelLocator = AdminModelLocator.getInstance();

public function LookUpDelegate(responder:IResponder)
{
this.roCategory= ServiceLocator.getInstance().getRemoteObject(‘kcaeService’);
this.responder = responder;
}
public function getProgressMapInfo():void
{
var token:AsyncToken = roCategory.getProgressMapInfo();
token.resultHandler = responder.result;
token.faultHandler = responder.fault;
}

}
Event

————————————————————————————————————————————————–

public class LookupEvent extends CairngormEvent
{
/**
* @private // request type
* */
private var _eventType:String;

/**
* static event type constants
* */
public static const GET:String = ‘get’;

/**
* constructor
* */
public function LookupEvent(type:String)
{
super(Controller.LOOKUP);
this._eventType = type;
}

public function get reqString():String
{
return _eventType;
}

}