<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Thinking  in Java And Flex</title>
	<atom:link href="http://yongniu.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://yongniu.wordpress.com</link>
	<description>Michael Niu's  Technical Weblog</description>
	<lastBuildDate>Wed, 30 Jul 2008 14:27:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='yongniu.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Thinking  in Java And Flex</title>
		<link>http://yongniu.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://yongniu.wordpress.com/osd.xml" title="Thinking  in Java And Flex" />
	<atom:link rel='hub' href='http://yongniu.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Mate-Tag Base Framework</title>
		<link>http://yongniu.wordpress.com/2008/07/29/mate-tag-base-framework/</link>
		<comments>http://yongniu.wordpress.com/2008/07/29/mate-tag-base-framework/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 22:37:16 +0000</pubDate>
		<dc:creator>Niu Yong</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://yongniu.wordpress.com/?p=84</guid>
		<description><![CDATA[Mate will become another hot pot in Flex area . It use configuration to call the service and handle the event. It also uses configuration to update the Bindable object. Somehow The Mate is The &#8220;springframework&#8221; in Flex Area. There are two architecture level diagrams of Mate. One is from Yakov Fain of Farata Systems, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=84&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://mate.asfusion.com/">Mate</a> will become another hot pot in Flex area . It use configuration to call the service and handle the event. It also uses configuration to update the Bindable object. Somehow The Mate is The &#8220;springframework&#8221; in Flex Area.</p>
<p>There are two architecture level diagrams of Mate. <a href="http://flexblog.faratasystems.com/?p=342">One </a>is from <a href="http://flexblog.faratasystems.com/">Yakov Fain of Farata Systems</a>, Another is from Mate funder company <a href="http://mate.asfusion.com/">ASFusion</a>. I like the later one:<a href="http://mate.asfusion.com/assets/content/diagrams/two_way_view_injection.png"><img class="aligncenter" src="http://mate.asfusion.com/assets/content/diagrams/two_way_view_injection.png" alt="" width="594" height="629" /></a></p>
<p>Lets use mate to develop the buddyList application</p>
<p>1.Create the core component of mate &#8212;-EventMap.</p>
<p>The EventMap is the heart of mate it glues all the other component and control the process:</p>
<p>BuddyListEventMap.mxml:</p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;color:#0000ff;"></p>
<blockquote>
<div></div>
<p><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;</p>
<div><span style="font-size:10pt;color:#0000ff;"> </p>
<p></span></div>
<div><span style="font-size:10pt;color:#0000ff;"></span></div>
<p><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;EventMap</p>
<p> </p>
<p></span></span></p>
<p align="left"><span style="font-size:10pt;color:#000000;">xmlns=&#8221;</span><span style="font-size:10pt;color:#990000;">http://mate.asfusion.com/</span><span style="font-size:10pt;color:#000000;">&#8221; </span></p>
<p><span style="font-size:10pt;">xmlns:mx=</span><span style="font-size:10pt;color:#990000;"><a href="http://www.adobe.com/2006/mxml">http://www.adobe.com/2006/mxml</a></span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<p><span style="font-size:10pt;color:#0000ff;">&lt;/EventMap&gt;</span></p>
<p> </p>
<p></span></p></blockquote>
<div><span style="font-size:10pt;color:#0000ff;"></p>
<div></div>
<p> </p>
<p></span></div>
<div><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"></p>
<div><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"></span></span></div>
<p></span></span></div>
<p><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"></p>
<div><span style="font-size:x-small;color:#0000ff;"></span></div>
<p></span></span></span></span><span style="font-size:x-small;color:#0000ff;"><span style="font-size:x-small;color:#0000ff;"></p>
<div></div>
<p></span></span></span><span style="font-size:x-small;color:#0000ff;">I will add the related code later. Now we need tell the main app that initialize the EventMap:</p>
<p></span></span>Flex_Mate.mxml:</p>
<blockquote>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;</p>
<div><span style="font-size:10pt;color:#0000ff;"> </p>
<p></span></div>
<div><span style="font-size:10pt;color:#0000ff;"></span></div>
<p></span><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;mx:Application</p>
<p> </p>
<p></span></span></p>
<p align="left"><span style="font-size:10pt;">xmlns:map=&#8221;</span><span style="font-size:10pt;color:#990000;">com.ny.flex.mate.map.*</span><span style="font-size:10pt;">&#8221; xmlns:views=&#8221;</span><span style="font-size:10pt;color:#990000;">com.ny.flex.mate.views.*</span><span style="font-size:10pt;">&#8221; xmlns:mx=&#8221;</span><span style="font-size:10pt;color:#990000;">http://www.adobe.com/2006/mxml</span><span style="font-size:10pt;">&#8221; layout=&#8221;</span><span style="font-size:10pt;color:#990000;">absolute</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;color:#006633;"></p>
<p align="left">&lt;mx:Script&gt;</p>
<div></div>
<p></span><span style="font-size:10pt;"></p>
<p align="left">&lt;![CDATA[</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">[</p>
<p> </p>
<p></span></span></p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">Bindable</span></strong></p>
<div><span style="font-size:10pt;">]</span></p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">viewStackSelectedIndex :int = 0;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">]]&gt;</p>
<p> </p>
<p></span></p>
<div></div>
<p><span style="font-size:10pt;color:#006633;"></p>
<p align="left">&lt;/mx:Script&gt;</p>
<div></div>
<p></span><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;map:BuddyListEventMap/&gt;</p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
</div>
<p></span><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:HBox</span><span style="font-size:10pt;"> horizontalAlign=&#8221;</span><span style="font-size:10pt;color:#990000;">center</span><span style="font-size:10pt;">&#8221; verticalAlign=&#8221;</span><span style="font-size:10pt;color:#990000;">top</span><span style="font-size:10pt;">&#8221; width=&#8221;</span><span style="font-size:10pt;color:#990000;">100%</span><span style="font-size:10pt;">&#8221; height=&#8221;</span><span style="font-size:10pt;color:#990000;">100%</span><span style="font-size:10pt;">&#8221; y=&#8221;</span><span style="font-size:10pt;color:#990000;">0</span><span style="font-size:10pt;">&#8221; x=&#8221;</span><span style="font-size:10pt;color:#990000;">0</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:ViewStack</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">viewStack</span><span style="font-size:10pt;">&#8221; resizeToContent=&#8221;</span><span style="font-size:10pt;color:#990000;">true</span><span style="font-size:10pt;">&#8221; selectedIndex=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">viewStackSelectedIndex</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; </span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;views:LoginView</span><span style="font-size:10pt;"> </span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;views:BuddyListView/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/mx:ViewStack&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left">
<div><span style="font-size:10pt;color:#0000ff;">&lt;/mx:HBox&gt;</span></div>
<div></div>
<p><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;/mx:Application&gt;</p>
<p> </p>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></p>
<p></span></span></div>
<p> </p></blockquote>
<p>2. Create the LoginView :</p>
<blockquote>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;</p>
<div><span style="font-size:10pt;color:#0000ff;"> </p>
<p></span></div>
<div><span style="font-size:10pt;color:#0000ff;"></span></div>
<p></span><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;mx:Panel</p>
<p> </p>
<p></span></span></p>
<p align="left"><span style="font-size:10pt;">xmlns:mx=&#8221;</span><span style="font-size:10pt;color:#990000;">http://www.adobe.com/2006/mxml</span><span style="font-size:10pt;">&#8221; layout=&#8221;</span><span style="font-size:10pt;color:#990000;">absolute</span><span style="font-size:10pt;">&#8221; width=&#8221;</span><span style="font-size:10pt;color:#990000;">300</span><span style="font-size:10pt;">&#8221; height=&#8221;</span><span style="font-size:10pt;color:#990000;">200</span><span style="font-size:10pt;">&#8221; horizontalAlign=&#8221;</span><span style="font-size:10pt;color:#990000;">center</span><span style="font-size:10pt;">&#8221; verticalAlign=&#8221;</span><span style="font-size:10pt;color:#990000;">middle</span><span style="font-size:10pt;">&#8221; title=&#8221;</span><span style="font-size:10pt;color:#990000;">Flex Cirngorm Login</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div><span style="font-size:10pt;"></span></p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#006633;">&lt;mx:Script&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">&lt;![CDATA[</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.event.LoginEvent;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.vo.User;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">mx.validators.Validator;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">private</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#339966;">function</span></strong><span style="font-size:10pt;"> login():</span><strong><span style="font-size:10pt;color:#0033ff;">void</span></strong></p>
<div><span style="font-size:10pt;">{</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">if</span></strong></p>
<div><span style="font-size:10pt;">(Validator.validateAll(validators).length == 0){</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong><span style="font-size:10pt;"> loginUser:User = </span><strong><span style="font-size:10pt;color:#0033ff;">new</span></strong></p>
<div><span style="font-size:10pt;">User();</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">loginUser.userName=username.text;</p>
<p align="left">loginUser.password=password.text;</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#6699cc;"><em>var</em></span></strong><em><span style="font-size:10pt;"> loginEvent:LoginEvent = </span><strong><span style="font-size:10pt;color:#0033ff;">new</span></strong></em></p>
<div><span style="font-size:10pt;"><em>LoginEvent(LoginEvent.LOGIN);</em></span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"><em>loginEvent.loginUser = loginUser;</em></p>
<p align="left"><em>dispatchEvent(loginEvent);</em></p>
<p align="left">}</p>
<p align="left">}</p>
<p align="left">]]&gt;</p>
<p> </p>
<p></span></p>
<div></div>
<p><span style="font-size:10pt;color:#006633;"></p>
<p align="left">&lt;/mx:Script&gt;</p>
<div></div>
<p></span><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#800000;">&lt;!&#8211; Validators&#8211;&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:Array</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">validators</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:StringValidator</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">userNameValidator</span><span style="font-size:10pt;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">username</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; property=&#8221;</span><span style="font-size:10pt;color:#990000;">text</span><span style="font-size:10pt;">&#8221; required=&#8221;</span><span style="font-size:10pt;color:#990000;">true</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:StringValidator</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">passwordValidator</span><span style="font-size:10pt;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">password</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; property=&#8221;</span><span style="font-size:10pt;color:#990000;">text</span><span style="font-size:10pt;">&#8221; required=&#8221;</span><span style="font-size:10pt;color:#990000;">true</span><span style="font-size:10pt;">&#8221; </span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/mx:Array&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<p align="left"> </p>
<div></div>
<p> </p>
<div><span style="font-size:10pt;color:#0000ff;"></span></div>
<p><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;mx:Form</p>
<p> </p>
<p></span></span></p>
<p align="left"><span style="font-size:10pt;">id=&#8221;</span><span style="font-size:10pt;color:#990000;">loginForm</span><span style="font-size:10pt;">&#8221; x=&#8221;</span><span style="font-size:10pt;color:#990000;">0</span><span style="font-size:10pt;">&#8221; y=&#8221;</span><span style="font-size:10pt;color:#990000;">0</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:FormItem</span><span style="font-size:10pt;"> label=&#8221;</span><span style="font-size:10pt;color:#990000;">Username:</span><span style="font-size:10pt;">&#8221; </span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:TextInput</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">username</span><span style="font-size:10pt;">&#8221; </span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/mx:FormItem&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:FormItem</span><span style="font-size:10pt;"> label=&#8221;</span><span style="font-size:10pt;color:#990000;">Password:</span><span style="font-size:10pt;">&#8221; </span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:TextInput</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">password</span><span style="font-size:10pt;">&#8221; displayAsPassword=&#8221;</span><span style="font-size:10pt;color:#990000;">true</span><span style="font-size:10pt;">&#8221; </span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/mx:FormItem&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:FormItem</span><span style="font-size:10pt;"> direction=&#8221;</span><span style="font-size:10pt;color:#990000;">horizontal</span><span style="font-size:10pt;">&#8221; verticalGap=&#8221;</span><span style="font-size:10pt;color:#990000;">15</span><span style="font-size:10pt;">&#8221; paddingTop=&#8221;</span><span style="font-size:10pt;color:#990000;">5</span><span style="font-size:10pt;">&#8221; width=&#8221;</span><span style="font-size:10pt;color:#990000;">170</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:Button</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">loginBtn</span><span style="font-size:10pt;">&#8221; label=&#8221;</span><span style="font-size:10pt;color:#990000;">Login</span><span style="font-size:10pt;">&#8221; click=&#8221;login()&#8221;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/mx:FormItem&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/mx:Form&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;/mx:Panel&gt;</p>
<p> </p>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></span></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></p>
<p></span></span></div>
<p> </p></blockquote>
<p align="left">See the action method above the LoginEvent is dispatched. Now create the LoginEvent:</p>
<blockquote>
<div><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p> </p>
<p></span></strong></p>
<div><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p></span></strong></div>
<p><strong><span style="font-size:10pt;color:#9900cc;"><strong><span style="font-size:10pt;color:#9900cc;"></p>
<p align="left">package</p>
<p> </p>
<p></span></strong></span></p>
<p align="left">
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.vo.User;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">flash.events.Event;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#9900cc;">class</span></strong><span style="font-size:10pt;"> LoginEvent </span><strong><span style="font-size:10pt;color:#0033ff;">extends</span></strong></p>
<div><span style="font-size:10pt;">Event</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#0033ff;">static</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#0033ff;">const</span></strong><span style="font-size:10pt;"> LOGIN:String = </span><strong><span style="font-size:10pt;color:#990000;">&#8220;login&#8221;</span></strong></p>
<div><span style="font-size:10pt;">;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">loginUser:User;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#339966;">function</span></strong><span style="font-size:10pt;"> LoginEvent(type:String, <strong><em>bubbles:Boolean=</em></strong></span><span style="font-size:10pt;color:#0033ff;"><strong><em>true</em></strong></span><span style="font-size:10pt;">, cancelable:Boolean=</span><strong><span style="font-size:10pt;color:#0033ff;">false</span></strong></p>
<div><span style="font-size:10pt;">)</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">super</span></strong></p>
<div><span style="font-size:10pt;">(type, bubbles, cancelable);</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">}</p>
<p align="left">
<p align="left">}</p>
<p>}</p>
<p> </p>
<div><span style="font-size:10pt;">com.ny.flex.mate.event</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p></span></span></p>
<p></span></p>
<p></span></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></p>
<p></span></p>
<p></span></p>
<p></span></p>
<p></span></p>
<p></strong></div>
</blockquote>
<p>The &#8220;bubbles” has to be &#8220;true&#8221;, it makes EventMap can handle it. The magic of mate comes in the EventMap . The LoginEvent can handle by tag :</p>
<blockquote><p>&#8230;..</p>
<div><span style="font-size:10pt;"></span></p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;EventHandlers</span><span style="font-size:10pt;"> type=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginEvent.LOGIN</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;RemoteObjectInvoker</span><span style="font-size:10pt;"> destination=&#8221;</span><span style="font-size:10pt;color:#990000;">flexmvcRO</span><span style="font-size:10pt;">&#8221; method=&#8221;</span><span style="font-size:10pt;color:#990000;">authenticate</span><span style="font-size:10pt;">&#8221; </span></p>
<p align="left"><span style="font-size:10pt;">arguments=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">event.loginUser</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;resultHandlers&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;MethodInvoker</span><span style="font-size:10pt;"> generator=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; </span></p>
<p align="left"><span style="font-size:10pt;">method=&#8221;</span><span style="font-size:10pt;color:#990000;">onResult_Authenticate</span><span style="font-size:10pt;">&#8221; </span></p>
<p align="left"><span style="font-size:10pt;">arguments=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">resultObject</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/resultHandlers&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/RemoteObjectInvoker&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/EventHandlers&gt;</span></p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&#8230;&#8230;</span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p> </p></blockquote>
<p align="left">
<p align="left"><span style="font-size:10pt;"><span style="color:#000000;">In the EvevntHandler , You can define the service call function(RemoteObjectInvoker here) . and It also define the result handler specify the service class ,method and arguments.</span></span></p>
<p align="left"><span style="font-size:10pt;">Lets see the LoginService object:</span></p>
<blockquote>
<div><span style="font-size:10pt;"></span></p>
<div><span style="font-size:10pt;"><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p></span></strong></span></div>
<p><span style="font-size:10pt;"><strong><span style="font-size:10pt;color:#9900cc;"><strong><span style="font-size:10pt;color:#9900cc;"></p>
<p align="left">package</p>
<p> </p>
<p></span></strong></span></p>
<p align="left">
<div><span style="font-size:10pt;">com.ny.flex.mate.service</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.vo.User;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#9900cc;">class</span></strong></p>
<div><span style="font-size:10pt;">LoginService</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">[</p>
<p> </p>
<p></span></span></p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">Bindable</span></strong></p>
<div><span style="font-size:10pt;">]</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">authUserName:String;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left">[</p>
<p> </p>
<p></span></span></p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">Bindable</span></strong></p>
<div><span style="font-size:10pt;">]</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">viewStackSelectedIndex:int ;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#339966;">function</span></strong><span style="font-size:10pt;"> onResult_Authenticate(user:User):</span><strong><span style="font-size:10pt;color:#0033ff;">void</span></strong></p>
<div><span style="font-size:10pt;">{</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">authUserName = user.userName;</p>
<p align="left">viewStackSelectedIndex = 1;</p>
<p align="left">}</p>
<p align="left">}</p>
<p>}</p>
<p> </p>
<p></span> </p>
<p></span></p>
<p></span></p>
<p></span></span></div>
</div>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></span></span></p>
<p></strong></span></div>
<div><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p> </p>
<p></span></strong> </div>
</blockquote>
<p>The service class handle the result and make the return object bindable. now we need update target views. Another shine point of mate is Injecting the bindable object to the target view! you just need add another tag in EventMap class . (This is damn cool):</p>
<blockquote>
<div><span style="font-size:10pt;"></span></p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;Injectors</span><span style="font-size:10pt;"> target=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">BuddyListView</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;PropertyInjector</span><span style="font-size:10pt;"> targetKey=&#8221;</span><span style="font-size:10pt;color:#990000;">authUserName</span><span style="font-size:10pt;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; </span></p>
<p align="left"><span style="font-size:10pt;">sourceKey=&#8221;</span><span style="font-size:10pt;color:#990000;">authUserName</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/Injectors&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;Injectors</span><span style="font-size:10pt;"> target=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">Flex_Mate</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;PropertyInjector</span><span style="font-size:10pt;"> targetKey=&#8221;</span><span style="font-size:10pt;color:#990000;">viewStackSelectedIndex</span><span style="font-size:10pt;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; </span></p>
<p align="left"><span style="font-size:10pt;">sourceKey=&#8221;</span><span style="font-size:10pt;color:#990000;">viewStackSelectedIndex</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/Injectors&gt;</span></p>
<p align="left"> </p>
<p></span></span></div>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p> </p></blockquote>
<p align="left"> </p>
<p><span style="font-size:10pt;">You just need specify the target view, taget key , source service object and source key! </span></p>
<p><span style="font-size:10pt;">Finally lets define the target view :BuddyListView:</span></p>
<blockquote>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;</p>
<div><span style="font-size:10pt;color:#0000ff;"> </p>
<p></span></div>
<div><span style="font-size:10pt;color:#0000ff;"></span></div>
<p></span><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;mx:Panel</p>
<p> </p>
<p></span></span></p>
<p align="left"><span style="font-size:10pt;">xmlns:mx=&#8221;</span><span style="font-size:10pt;color:#990000;">http://www.adobe.com/2006/mxml</span><span style="font-size:10pt;">&#8221; title=&#8221;</span><span style="font-size:10pt;color:#990000;">Buddy List of <strong><em>{</em></strong></span><strong><em><span style="font-size:10pt;">authUserName</span><span style="font-size:10pt;color:#990000;">}</span></em></strong><span style="font-size:10pt;"><strong><em>&#8220;</em></strong> creationComplete=&#8221;getBuddyList()&#8221; width=&#8221;</span><span style="font-size:10pt;color:#990000;">500</span><span style="font-size:10pt;">&#8221; height=&#8221;</span><span style="font-size:10pt;color:#990000;">320</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;color:#006633;"></p>
<p align="left">&lt;mx:Script&gt;</p>
<div></div>
<p></span><span style="font-size:10pt;"></p>
<p align="left">&lt;![CDATA[</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">mx.collections.ArrayCollection;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.event.GetBuddyListEvent;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left">[</p>
<p> </p>
<p></span></span></p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">Bindable</span></strong></p>
<div><span style="font-size:10pt;">]</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">authUserName:String;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left">[</p>
<p> </p>
<p></span></span></p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">Bindable</span></strong></p>
<div><span style="font-size:10pt;">]</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">buddyCollection:ArrayCollection;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">private</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#339966;">function</span></strong><span style="font-size:10pt;"> getBuddyList():</span><strong><span style="font-size:10pt;color:#0033ff;">void</span></strong></p>
<div><span style="font-size:10pt;">{</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong><span style="font-size:10pt;"> getBuddyListEvent:GetBuddyListEvent = </span><strong><span style="font-size:10pt;color:#0033ff;">new</span></strong></p>
<div><span style="font-size:10pt;">GetBuddyListEvent(GetBuddyListEvent.GET_BUDDY_LIST);</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">getBuddyListEvent.authUserName = authUserName;</p>
<p align="left">dispatchEvent(getBuddyListEvent);</p>
<p align="left">}</p>
<p align="left">]]&gt;</p>
<p> </p>
<p></span></p>
<div></div>
<p><span style="font-size:10pt;color:#006633;"></p>
<p align="left">&lt;/mx:Script&gt;</p>
<div></div>
<p></span><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:DataGrid</span><span style="font-size:10pt;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;">buddyList</span><span style="font-size:10pt;">&#8221; dataProvider=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">buddyCollection</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; borderStyle=&#8221;</span><span style="font-size:10pt;color:#990000;">none</span><span style="font-size:10pt;">&#8221; width=&#8221;</span><span style="font-size:10pt;color:#990000;">100%</span><span style="font-size:10pt;">&#8221; height=&#8221;</span><span style="font-size:10pt;color:#990000;">100%</span><span style="font-size:10pt;">&#8221; </span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:columns&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:DataGridColumn</span><span style="font-size:10pt;"> dataField=&#8221;</span><span style="font-size:10pt;color:#990000;">firstName</span><span style="font-size:10pt;">&#8221; headerText=&#8221;</span><span style="font-size:10pt;color:#990000;">First Name</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;mx:DataGridColumn</span><span style="font-size:10pt;"> dataField=&#8221;</span><span style="font-size:10pt;color:#990000;">lastName</span><span style="font-size:10pt;">&#8221; headerText=&#8221;</span><span style="font-size:10pt;color:#990000;">Last Name</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/mx:columns&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left">
<div><span style="font-size:10pt;color:#0000ff;">&lt;/mx:DataGrid&gt;</span></div>
<div></div>
<p><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;/mx:Panel&gt;</p>
<p align="left"> </p>
<p></span></p>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></span></span></div>
</div>
<p></span></span></div>
</div>
<p></span></span></div>
<p></span></span></p></blockquote>
<p align="left">Checkout the &#8220;{autherUsername}&#8221;, it comes from the LoginService.</p>
<p align="left">You probably wonder about &#8220;buddyListCollection&#8221;. It means another around development:</p>
<p align="left">Action&#8211;&gt;Dispatch Event&#8211;&gt;Config Handler&#8211;&gt;create service&#8211;&gt;Inject Bindable Object &#8211;&gt;another Action&#8230;.</p>
<p align="left">All the other code is blow:</p>
<p align="left">GetBuddyListEvent.as:</p>
<blockquote>
<div><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p> </p>
<p></span></strong></p>
<div><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p></span></strong></div>
<p><strong><span style="font-size:10pt;color:#9900cc;"><strong><span style="font-size:10pt;color:#9900cc;"></p>
<p align="left">package</p>
<p> </p>
<p></span></strong></span></p>
<p align="left">
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">flash.events.Event;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#9900cc;">class</span></strong><span style="font-size:10pt;"> GetBuddyListEvent </span><strong><span style="font-size:10pt;color:#0033ff;">extends</span></strong></p>
<div><span style="font-size:10pt;">Event</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#0033ff;">static</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#0033ff;">const</span></strong><span style="font-size:10pt;"> GET_BUDDY_LIST =</span><strong><span style="font-size:10pt;color:#990000;">&#8220;getAllFriends&#8221;</span></strong></p>
<div><span style="font-size:10pt;">;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">authUserName:String;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#339966;">function</span></strong><span style="font-size:10pt;"> GetBuddyListEvent(type:String, bubbles:Boolean=</span><strong><span style="font-size:10pt;color:#0033ff;">true</span></strong><span style="font-size:10pt;">, cancelable:Boolean=</span><strong><span style="font-size:10pt;color:#0033ff;">false</span></strong></p>
<div><span style="font-size:10pt;">)</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">super</span></strong></p>
<div><span style="font-size:10pt;">(type, bubbles, cancelable);</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">}</p>
<p align="left">
<p align="left">}</p>
<p>}</p>
<p> </p>
<div><span style="font-size:10pt;">com.ny.flex.mate.event</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p></span></span></p>
<p></span></p>
<p></span></span></p>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></span></p>
<p></span></p>
<p></span></p>
<p></strong></div>
</blockquote>
<p>BuddyService.as:</p>
<blockquote>
<div><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p> </p>
<p></span></strong></p>
<div><strong><span style="font-size:10pt;color:#9900cc;"></p>
<div><strong></strong></div>
<p></span></strong></div>
<p><strong><span style="font-size:10pt;color:#9900cc;"><strong><span style="font-size:10pt;color:#9900cc;"></p>
<p align="left">package</p>
<p> </p>
<p></span></strong></span></p>
<p align="left">
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">mx.collections.ArrayCollection;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#9900cc;">class</span></strong></p>
<div><span style="font-size:10pt;">BuddyService</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">[</p>
<p> </p>
<p></span></span></p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">Bindable</span></strong></p>
<div><span style="font-size:10pt;">]</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#6699cc;">var</span></strong></p>
<div><span style="font-size:10pt;">buddyList:ArrayCollection;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">public</span></strong><span style="font-size:10pt;"> </span><strong><span style="font-size:10pt;color:#339966;">function</span></strong></p>
<div><span style="font-size:10pt;">onResult_GetBuddyList(buddies:ArrayCollection){</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">buddyList = buddies;</p>
<p align="left">}</p>
<p align="left">}</p>
<p>}</p>
<p> </p>
<p></span></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.service</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">{</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p></span></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></strong></div>
</blockquote>
<p>The completely EventMap file: BuddyListEventMap.mxml</p>
<blockquote>
<div></div>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;</p>
<div><span style="font-size:10pt;color:#0000ff;"> </p>
<p></span></div>
<div><span style="font-size:10pt;color:#0000ff;"></span></div>
<p></span><span style="font-size:10pt;color:#0000ff;"><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;EventMap</p>
<p> </p>
<p></span></span></p>
<p align="left"><span style="font-size:10pt;">xmlns=&#8221;</span><span style="font-size:10pt;color:#990000;">http://mate.asfusion.com/</span><span style="font-size:10pt;">&#8221; xmlns:mx=&#8221;</span><span style="font-size:10pt;color:#990000;">http://www.adobe.com/2006/mxml</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div><span style="font-size:10pt;"></span></p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#006633;">&lt;mx:Script&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">&lt;![CDATA[</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.event.BDbbdEvent;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.service.BuddyService;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.event.GetBuddyListEvent;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.views.BuddyListView;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.service.LoginService;</span> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><strong><span style="font-size:10pt;color:#0033ff;">import</span></strong></p>
<div><span style="font-size:10pt;">com.ny.flex.mate.event.LoginEvent;</span></div>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">]]&gt;</p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#006633;">&lt;/mx:Script&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;EventHandlers</span><span style="font-size:10pt;"> type=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginEvent.LOGIN</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;RemoteObjectInvoker</span><span style="font-size:10pt;"> destination=&#8221;</span><span style="font-size:10pt;color:#990000;">flexmvcRO</span><span style="font-size:10pt;">&#8221; method=&#8221;</span><span style="font-size:10pt;color:#990000;">authenticate</span><span style="font-size:10pt;">&#8221; arguments=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">event.loginUser</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;resultHandlers&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;MethodInvoker</span><span style="font-size:10pt;"> generator=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; method=&#8221;</span><span style="font-size:10pt;color:#990000;">onResult_Authenticate</span><span style="font-size:10pt;">&#8221; arguments=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">resultObject</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/resultHandlers&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/RemoteObjectInvoker&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/EventHandlers&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;EventHandlers</span><span style="font-size:10pt;"> type=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">GetBuddyListEvent.GET_BUDDY_LIST</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;RemoteObjectInvoker</span><span style="font-size:10pt;"> destination=&#8221;</span><span style="font-size:10pt;color:#990000;">flexmvcRO</span><span style="font-size:10pt;">&#8221; method=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">GetBuddyListEvent.GET_BUDDY_LIST</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; arguments=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">event.authUserName</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;resultHandlers&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;MethodInvoker</span><span style="font-size:10pt;"> generator=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">BuddyService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; method=&#8221;</span><span style="font-size:10pt;color:#990000;">onResult_GetBuddyList</span><span style="font-size:10pt;">&#8221; arguments=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">resultObject</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/resultHandlers&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/RemoteObjectInvoker&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/EventHandlers&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<p align="left">
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;Injectors</span><span style="font-size:10pt;"> target=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">BuddyListView</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;PropertyInjector</span><span style="font-size:10pt;"> targetKey=&#8221;</span><span style="font-size:10pt;color:#990000;">authUserName</span><span style="font-size:10pt;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; sourceKey=&#8221;</span><span style="font-size:10pt;color:#990000;">authUserName</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;PropertyInjector</span><span style="font-size:10pt;"> targetKey=&#8221;</span><span style="font-size:10pt;color:#990000;">buddyCollection</span><span style="font-size:10pt;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">BuddyService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; sourceKey=&#8221;</span><span style="font-size:10pt;color:#990000;">buddyList</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/Injectors&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;Injectors</span><span style="font-size:10pt;"> target=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">Flex_Mate</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;PropertyInjector</span><span style="font-size:10pt;"> targetKey=&#8221;</span><span style="font-size:10pt;color:#990000;">viewStackSelectedIndex</span><span style="font-size:10pt;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;">{</span><span style="font-size:10pt;">LoginService</span><span style="font-size:10pt;color:#990000;">}</span><span style="font-size:10pt;">&#8221; sourceKey=&#8221;</span><span style="font-size:10pt;color:#990000;">viewStackSelectedIndex</span><span style="font-size:10pt;">&#8220;</span><span style="font-size:10pt;color:#0000ff;">/&gt;</span></p>
<div>
<p> </p>
<div><span style="font-size:10pt;"></span></div>
<p><span style="font-size:10pt;"><span style="font-size:10pt;"></p>
<p align="left"> </p>
<p align="left"><span style="font-size:10pt;color:#0000ff;">&lt;/Injectors&gt;</span></p>
<div></div>
<p><span style="font-size:10pt;"></p>
<p align="left">
<div></div>
<p><span style="font-size:10pt;color:#0000ff;"></p>
<p align="left">&lt;/EventMap&gt;</p>
<p> </p>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></p>
<p></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></p>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></div>
<p></span></span></p>
<p></span></span></div>
<p> </p>
<p></span></p></blockquote>
<p align="left">Summary</p>
<p align="left">I discussed  flex development  in  last 5 blogs. What is  the best choice  ?</p>
<p align="left">I think  the central management  will be  NO1. choice for the small project. Because  you dont need   learn any  new framework  and  you still  get clear architecture .</p>
<p align="left">For the  mate and Cairngorm,   Mate seems  win the conpetition  now. Because</p>
<p align="left">For Cairngorm:</p>
<p align="left">1.   Cairngorm  is too complicate  and  study cost is higher.</p>
<p align="left">2.  Cairngorm has some Junk code for my  opionion, ie.frontcontrollerI.</p>
<p align="left">For  Mate,</p>
<p align="left">1 . It is  simpler than  Cairngorm, and easier to study.</p>
<p align="left">2. You get benefit from  EventMap, Because  you dont need  write ther glue code between  event and the  service.</p>
<p align="left">3.You get pain from EventMap.  Just imagine  you have  50 actions and 100 objects to bind. you have to put  lots of   configration  stuff in your EventMap, Then EventMap become the disastor!</p>
<p align="left">So  if you have to use  cairngorm   use  my solution <a href="http://yongniu.wordpress.com/2008/07/28/cut-it-off-cairngorm-without-front-controller/"> Cairngorm without FrontContoller</a>.</p>
<p align="left">For the mate,   if they can add  the Meta Tag instead of  the EventMap. i.e.:</p>
<p align="left">[EventHadler ={name ="myHandler", serviceclass="myservice" result , taget ...}]</p>
<p align="left">MateDispatch(myevent).</p>
<p align="left">So  you dont need   config anything,  I am waiting for  this.</p>
<p align="left"> </p>
<p align="left"> </p>
<p align="left"> </p>
<p align="left">
<p align="left"> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yongniu.wordpress.com/84/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yongniu.wordpress.com/84/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yongniu.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yongniu.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yongniu.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yongniu.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yongniu.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yongniu.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yongniu.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yongniu.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yongniu.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yongniu.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yongniu.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yongniu.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yongniu.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yongniu.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=84&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yongniu.wordpress.com/2008/07/29/mate-tag-base-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/327d3f1ae4612f823a56b3779a161d18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mn</media:title>
		</media:content>

		<media:content url="http://mate.asfusion.com/assets/content/diagrams/two_way_view_injection.png" medium="image" />
	</item>
		<item>
		<title>Cut It Off-Cairngorm without front controller</title>
		<link>http://yongniu.wordpress.com/2008/07/28/cut-it-off-cairngorm-without-front-controller/</link>
		<comments>http://yongniu.wordpress.com/2008/07/28/cut-it-off-cairngorm-without-front-controller/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 20:07:41 +0000</pubDate>
		<dc:creator>Niu Yong</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://yongniu.wordpress.com/?p=67</guid>
		<description><![CDATA[As we know when you use Cairngorm, Every action of view need dispatch an event. Every dispatched event need to create command to handle the event. And you have to add the mapping them in the frontcontroller. For example: Loginvew.xml &#8212;&#62; action login() &#8212;&#62;dispatch LoginEvent &#8212;&#62;Handled by LoginCommand &#8212;&#62;mapping LoginEvent and LoginCommand in FrontController. When [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=67&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">As we know<span> </span>when<span> </span>you use Cairngorm,<span> </span>Every action of view need dispatch<span> </span>an event. Every dispatched event need to<span> </span>create command to handle the<span> </span>event. And<span> </span>you have to<span> </span>add the mapping them<span> </span>in<span> </span>the frontcontroller. For example:</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;"><strong><span style="font-family:Times New Roman;">Loginvew.xml<span> &#8212;&gt;</span></span><span style="font-family:Times New Roman;"> action login() &#8212;&gt;</span><span style="font-family:Times New Roman;">dispatch<span> </span>LoginEvent &#8212;&gt;</span><span style="font-family:Times New Roman;">Handled<span> </span>by LoginCommand &#8212;&gt;</span></strong><span style="font-family:Times New Roman;"><strong>mapping LoginEvent and LoginCommand in FrontController</strong>.</span></span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">When you create any new action , you have to create<span> </span>2 classes and<span> </span>modify<span> </span>front controller, assume<span> </span>the business<span> </span>logic code is same .</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">So<span> </span>How to simplify Cairngorm? My solution is cut of frontcontroller. The architecture is :</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="text-align:center;margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"><a href="http://yongniu.files.wordpress.com/2008/07/cairngormwocontroller.png"><img class="size-medium wp-image-68 aligncenter" src="http://yongniu.files.wordpress.com/2008/07/cairngormwocontroller.png?w=455&#038;h=303" alt="" width="455" height="303" /></a></span></p>
<p class="MsoNormal" style="margin:0;">
<div></div>
<p><span style="font-size:12pt;font-family:Times New Roman;"></p>
<p class="MsoNormal" style="margin:0;">As<span> </span>above diagram show,<span> </span>The view will not<span> </span>dispatch any event. It will<span> </span>service<span> </span>façade directly. The façade<span> </span>will call<span> </span>business delegate to communicate with<span> </span>the server side solution(i.e. remote object). Then<span> </span>the delegate will<span> </span>handle the result and update<span> </span>Model locator. Finally<span> </span>Model locator<span> </span>will update<span> </span>the result view<span> </span>by<span> </span>Binding.</p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">Lets<span> </span>see the code ;</p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:&quot;">ServiceFacade.as:</span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.no_fc.service</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.no_fc.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ServiceFacade</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> _serviceFacade:ServiceFacade = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">;</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ServiceFacade(privateClass:PrivateClass)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(ServiceFacade._serviceFacade == </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">ServiceFacade._serviceFacade = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">this</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> getInstance():ServiceFacade {</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(_serviceFacade == </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">_serviceFacade = </span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ServiceFacade(</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> PrivateClass);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">return</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> _serviceFacade;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> authenticate(user:User):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><strong><em>LoginDelegate.getInstance().authenticate(user);</em></strong></span><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>getBuddyList():</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><strong><em>BuddyListDelegate.getInstance().getBuddyList();</em></strong></span><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>PrivateClass{}</span></p>
<p class="MsoNormal" style="margin:0;"> </p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">ServiceFacade provides unify<span> </span>interface<span> </span>of<span> all </span>business logic.<span> </span>And<span> </span>the action of view will only call the<span> </span>façade . for example<span> </span>login action in<span> </span>Loginvew.xml :</span></p>
<blockquote>
<div></div>
<p><span style="font-size:10pt;color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> login():</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(Validator.validateAll(validators).length == 0){</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> loginUser:User = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> User();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">loginUser.userName=username.text;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">loginUser.password=password.text;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><strong><em><span style="text-decoration:underline;">serviceFacade.authenticate(loginUser);</span></em></strong></span><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}<span> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p> </p>
<p> </p>
<p></span></p></blockquote>
<div></div>
<p><span style="font-size:10pt;color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Lets see the function </span><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;">serviceFacade.authenticate(loginUser):</span></em></strong></p>
<blockquote>
<div></div>
<p><span style="font-size:10pt;color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;"><span><strong>public</strong> <strong>function</strong> authenticate(user:User):<strong>void</strong>{</span></p>
<p class="MsoNormal" style="margin:0;"><span><em><strong>LoginDelegate.getInstance().authenticate(user);</strong></em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p> </p>
<p> </p>
<p></span></p></blockquote>
<div></div>
<p><span style="font-size:10pt;color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">It calls the<span> </span>function “</span><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;">authenticate(user)” in LoginDelegate:</span></em></strong></p>
<blockquote>
<div><span style="font-size:10pt;color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;"><span><strong>public</strong> <strong>function</strong><span> </span>authenticate(user:User):<strong>void</strong>{</span></p>
<p class="MsoNormal" style="margin:0;"><span><strong>var</strong> responder:IResponder =<br />
<strong>new</strong> Responder(<strong>onResult_Authenticate</strong>,fault);</span></p>
<p class="MsoNormal" style="margin:0;"><span><strong>var</strong> call:Object = service.authenticate(user);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">call.addResponder(responder);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span><strong>private</strong> <strong>function</strong></span><span style="font-size:10pt;color:#000000;font-family:&quot;"> <strong>onResult_Authenticate</strong>(event:ResultEvent)</span></p>
<p class="MsoNormal" style="margin:0;"><span>:<strong>void</strong>{</span></p>
<p class="MsoNormal" style="margin:0;"><span><strong>var</strong> authUser:User = event.result <strong>as</strong> User;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">model.loginUser = authUser;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">model.viewStackSelectedIndex = 1;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p> </p>
<p> </p>
<p></span></div>
</blockquote>
<div></div>
<p><span style="font-size:10pt;color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;">
<div><span style="font-size:10pt;color:#000000;font-family:&quot;"><span style="font-size:12pt;font-family:Times New Roman;">As above code shows<span> </span>the<span> </span>delegate will call the<span> data source</span><span> </span>, handle the result and update model locator.</span></p>
<div></div>
<p></span></div>
<p><span style="font-size:10pt;color:#000000;font-family:&quot;"><span style="color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Lets see the completely code from<span> </span>LoginView<span> </span>to LoginDelegate:</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">BaseView.mxml:</span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.no_fc.service</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.no_fc.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ServiceFacade</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> _serviceFacade:ServiceFacade = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">;</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ServiceFacade(privateClass:PrivateClass)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(ServiceFacade._serviceFacade == </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">ServiceFacade._serviceFacade = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">this</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> getInstance():ServiceFacade {</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(_serviceFacade == </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">_serviceFacade = </span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ServiceFacade(</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> PrivateClass);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">return</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> _serviceFacade;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> authenticate(user:User):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><strong><em>LoginDelegate.getInstance().authenticate(user);</em></strong></span><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>getBuddyList():</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">BuddyListDelegate.getInstance().getBuddyList();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>PrivateClass{}</span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">The façade will locate the concrete<span> </span>Business delegate method :</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">LoginDelegate.as:</span></p>
<blockquote>
<div></div>
<p><span style="font-size:12pt;font-family:Times New Roman;"></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.no_fc.service</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.no_fc.*;</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.no_fc.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.rpc.IResponder;</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.rpc.Responder;</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.rpc.events.ResultEvent;</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginDelegate </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">extends</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> BaseDelegate </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> _loginDelegate:LoginDelegate = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">;</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginDelegate(privateClass:PrivateClass){</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(LoginDelegate._loginDelegate == </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">LoginDelegate._loginDelegate = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">this</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>getInstance():LoginDelegate{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(_loginDelegate == </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">_loginDelegate = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginDelegate(</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> PrivateClass);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">return</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>_loginDelegate;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>authenticate(user:User):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> responder:IResponder = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> Responder(onResult_Authenticate,fault);</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> call:Object = service.authenticate(user);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">call.addResponder(responder);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> onResult_Authenticate(event:ResultEvent):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> authUser:User = event.result </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">as</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> User;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">model.loginUser = authUser;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">model.viewStackSelectedIndex = 1;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> PrivateClass{}</span></p>
<p> </p>
<p> </p>
<p></span></p></blockquote>
<p class="MsoNormal" style="margin:0;">
<div></div>
<p><span style="font-size:10pt;color:#000000;font-family:&quot;"></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">This solution<span> </span>simplify Cairngorm framework. And<span> </span>It makes everthing<span> </span>understandable. But<span> </span>the shortage<span> </span>is obviously. It<span> </span>broke<span> </span>some<span> </span>design patten rules Decouple<span> </span>the application as much as possible. It<span> </span>couple the<span> </span>action to<span> </span>the Service Façade.</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">Lets move the next part:Mate-Tag Base Framework,</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;">
<div></div>
<div></div>
<div><span style="font-size:12pt;font-family:Times New Roman;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></span><span style="font-size:12pt;font-family:Times New Roman;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></span></div>
<p></span></p>
<p></span></span></p>
<p></span></span></p>
<p></span></p>
<p></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yongniu.wordpress.com/67/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yongniu.wordpress.com/67/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yongniu.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yongniu.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yongniu.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yongniu.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yongniu.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yongniu.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yongniu.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yongniu.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yongniu.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yongniu.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yongniu.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yongniu.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yongniu.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yongniu.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=67&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yongniu.wordpress.com/2008/07/28/cut-it-off-cairngorm-without-front-controller/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/327d3f1ae4612f823a56b3779a161d18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mn</media:title>
		</media:content>

		<media:content url="http://yongniu.files.wordpress.com/2008/07/cairngormwocontroller.png?w=300" medium="image" />
	</item>
		<item>
		<title>Flex MVC-Cairngorm</title>
		<link>http://yongniu.wordpress.com/2008/07/25/flex-mvc-cairngorm/</link>
		<comments>http://yongniu.wordpress.com/2008/07/25/flex-mvc-cairngorm/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 21:17:29 +0000</pubDate>
		<dc:creator>Niu Yong</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://yongniu.wordpress.com/?p=57</guid>
		<description><![CDATA[Do you ever hear a weird word “Cairngorm”? if your answer is no. Please look around if you live in a cageJ A MVC Framework in Flex area which named by a mountain of Scotland. (Damn it, If I create my own Flex framework, I will call it “TianAnMen”). There are tons of articles and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=57&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;"><span style="font-family:Times New Roman;">Do you ever hear<span>  </span>a weird word “Cairngorm”? if your answer is no. Please look around<span>  </span>if you<span>  </span>live in a cage</span><span style="font-family:Wingdings;"><span>J</span></span><span><span style="font-family:Times New Roman;">  </span></span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">A MVC Framework<span>  </span>in Flex area which named<span>  </span>by<span>  </span>a<span>  </span>mountain of Scotland. (Damn it, If I<span>  </span>create<span>  </span>my own Flex<span>  </span>framework, I will call it “TianAnMen”).</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">There<span>  </span>are<span>  </span>tons of<span>  </span>articles and<span>  </span>diagram to discuss about . This<span>  </span>is my<span>  </span>architecture diagram:</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="text-align:center;margin:0;"><a href="http://yongniu.files.wordpress.com/2008/07/cairngorm.png"><img class="size-medium wp-image-56 aligncenter" src="http://yongniu.files.wordpress.com/2008/07/cairngorm.png?w=440&#038;h=336" alt="" width="440" height="336" /></a></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">The first step of<span>   </span>using Cairngorm<span>   </span>should be<span>  </span>creating the backbone of frame work. It includes<span>  </span>3 objects:</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"><strong>Model Locater.</strong></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"><strong>Service Locator;</strong></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"><strong>Front Controller</strong>.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Model Locator<span>  </span>carries<span>   </span>all the transport information<span>  </span>between<span>  </span>the components<span>  </span>It is a Bindable<span>  </span>object;</span></p>
<p class="MsoNormal" style="margin:0;"><span><span style="font-size:12pt;font-family:Times New Roman;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Service Locator defines the interface<span>  </span>to<span>  </span>communicate<span>  </span>with<span>  </span>datasource(Httpservice, Webservice,Remoteobject<span>  </span>) .</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Front Controller<span>  </span>builds the mapping<span>  </span>between the Dispatched event and Command<span>  </span>;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Lets see the related code of<span>  </span>BuddyList app:</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><em><span style="font-size:10pt;color:#000000;font-family:&quot;">BuddyAppModelLocator</span><span style="font-size:12pt;font-family:Times New Roman;">.as:</span></em></p>
<p class="MsoNormal" style="margin:0;">
<blockquote>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.model</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.collections.ArrayCollection;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>[</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">Bindable</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">]</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> BuddyAppModelLocator</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> buddyList:ArrayCollection=</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ArrayCollection();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> loginUser:User=</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> User();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> viewStackSelectedIndex :int = 0;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> __instance:BuddyAppModelLocator=</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> getInstance():BuddyAppModelLocator</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(__instance == </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">null</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                        </span>__instance=</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> BuddyAppModelLocator();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">return</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> __instance;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>}</span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Somehow<span>   </span>almost<span>  </span>all the<span>  </span>service return information should have an object in<span>  </span>the<span>  </span>Model locator.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"><em>BuddyServiceLocator.mxml:</em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;cairngorm:ServiceLocator</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> xmlns:mx=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">http://www.adobe.com/2006/mxml</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; xmlns:cairngorm=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">http://www.adobe.com/2006/cairngorm</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:RemoteObject</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">buddyRo</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>destination=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">flexmvcRO</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; </span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:RemoteObject&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/cairngorm:ServiceLocator&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;"> </span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="color:#000000;"><span style="font-size:10pt;font-family:&quot;">It defines<span>  </span>remoteobject<span>  </span>in this example . it should<span>   </span>match the </span><span style="font-size:10pt;font-family:&quot;">destination</span><span style="font-size:10pt;font-family:&quot;"> in remote_config.xml;</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"><em>BuddyListController.as:</em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.control</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.adobe.cairngorm.control.FrontController;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.command.GetBuddyListCommand;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.command.LoginCommand;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.event.GetBuddyListEvent;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.event.LoginEvent;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> BuddyListController </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">extends</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> FrontController</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> BuddyListController()</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">super</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>addCommand(LoginEvent.LOGIN_EVENT,LoginCommand);<span>      </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span><span>      </span>addCommand(GetBuddyListEvent.GET_BUDDY_LIST_EVENT,</span></p>
<p class="MsoNormal" style="text-indent:0.5in;margin:0 0 0 2in;"><span style="font-size:10pt;color:#000000;font-family:&quot;">GetBuddyListCommand);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">Obviously<span>  </span>it is<span>  </span>a mapping<span>  </span>house of<span>  </span>event and<span>  </span>command.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">How<span>  </span>to glue this<span>  </span>junk together? The magic is<span>  </span>in<span>  </span>Main application<span>  </span>view :</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"><em>BuddList_Main_Cairngorm.mxml:</em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:Application</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> xmlns:mx=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">http://www.adobe.com/2006/mxml</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>xmlns:service=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">com.ny.flex.cairngorm.service.*</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>xmlns:controller=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">com.ny.flex.cairngorm.control.*</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; xmlns:views=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">com.ny.flex.cairngorm.views.*</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; layout=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">absolute</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>width=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">100%</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; height=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">100%</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#006633;font-family:&quot;">&lt;mx:Script&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>&lt;![CDATA[</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.model.BuddyAppModelLocator;</span></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>[</span></em></strong><strong><em><span style="font-size:10pt;color:#0033ff;font-family:&quot;">Bindable</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;">]</span></em></strong><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></em></strong><strong><em><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></em></strong><strong><em><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"> myModel:BuddyAppModelLocator = BuddyAppModelLocator.getInstance();</span></em></strong><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>]]&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#006633;font-family:&quot;">&lt;/mx:Script&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></em></strong><strong><em><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;service:BuddyServiceLocator</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span></em></strong><strong><em><span style="font-size:10pt;color:#990000;font-family:&quot;">myservice</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span></em></strong><strong><em><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></em></strong><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></em></strong><strong><em><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;controller:BuddyListController</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span></em></strong><strong><em><span style="font-size:10pt;color:#990000;font-family:&quot;">myController</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span></em></strong><strong><em><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></em></strong><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:HBox</span><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>  </span>horizontalAlign=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">center</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; verticalAlign=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">top</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>width=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">100%</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; height=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">100%</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; y=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">0</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; x=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">0</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:ViewStack</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">viewStack</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>resizeToContent=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">true</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; selectedIndex=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">{</span><span style="font-size:10pt;color:#000000;font-family:&quot;">myModel.viewStackSelectedIndex</span><span style="font-size:10pt;color:#990000;font-family:&quot;">}</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; </span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>        </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;views:LoginView</span><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>  </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>        </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;views:BuddyListView/&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:ViewStack&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:HBox&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:Application&gt;</span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">Now you can create the view component and dispatch the event from it.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><em>LoginView.xml</em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>&lt;![CDATA[</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.event.LoginEvent;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.validators.Validator;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> login():</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">if</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(Validator.validateAll(validators).length == 0){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                        </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> loginUser:User = </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> User();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                        </span>loginUser.userName=username.text;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                        </span>loginUser.password=password.text;</span></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                        </span></span></em></strong><strong><em><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"> loginEvent:LoginEvent = </span></em></strong><strong><em><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></em></strong><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginEvent();</span></em></strong><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                        </span>loginEvent.loginUser = loginUser;</span></em></strong><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                        </span>loginEvent.dispatch();</span></em></strong><strong><em></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>}<span>   </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>]]&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#006633;font-family:&quot;">&lt;/mx:Script&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span></span><span style="font-size:10pt;color:#800000;font-family:&quot;">&lt;!&#8211;<span>  </span>Validators&#8211;&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:Array</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">validators</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:StringValidator</span><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>  </span>id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">userNameValidator</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">{</span><span style="font-size:10pt;color:#000000;font-family:&quot;">username</span><span style="font-size:10pt;color:#990000;font-family:&quot;">}</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>property=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">text</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>required=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">true</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:StringValidator</span><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>  </span>id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">passwordValidator</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; source=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">{</span><span style="font-size:10pt;color:#000000;font-family:&quot;">password</span><span style="font-size:10pt;color:#990000;font-family:&quot;">}</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;<span>  </span>property=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">text</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; required=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">true</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; </span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:Array&gt;</span><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:Form</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">loginForm</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; x=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">0</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; y=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">0</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>          </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:FormItem</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> label=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">Username:</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; </span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>               </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:TextInput</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">username</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; </span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>       </span><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:FormItem&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>           </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:FormItem</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> label=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">Password:</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; </span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>               </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:TextInput</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">password</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; displayAsPassword=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">true</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; </span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>           </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:FormItem&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>           </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:FormItem</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> direction=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">horizontal</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; verticalGap=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">15</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; paddingTop=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">5</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; width=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">170</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8220;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span><span>           </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;mx:Button</span><span style="font-size:10pt;color:#000000;font-family:&quot;"> id=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">loginBtn</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; label=&#8221;</span><span style="font-size:10pt;color:#990000;font-family:&quot;">Login</span><span style="font-size:10pt;color:#000000;font-family:&quot;">&#8221; <span style="text-decoration:underline;">click</span>=&#8221;login()&#8221;</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">/&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>           </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:FormItem&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>    </span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:Form&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>   </span><span>   </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">&lt;/mx:Panel&gt;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#0000ff;font-family:&quot;"> </span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;">Typically<span>  </span>every action of view will need create a event:</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"><em>LoginEvent.as:</em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.event</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.adobe.cairngorm.control.CairngormEvent;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> flash.events.Event;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginEvent </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">extends</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> CairngormEvent</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">static</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LOGIN_EVENT:String = </span><strong><span style="font-size:10pt;color:#990000;font-family:&quot;">&#8220;loginEvent&#8221;</span></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>  </span>loginUser:User ;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginEvent()</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">super</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">(LOGIN_EVENT);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">override</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> clone() : Event</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">return</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginEvent();</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">And<span>  </span>Every Event<span>  </span>has to be mapped to a Command :</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><em>LoginCommand.as:</em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.command</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.adobe.cairngorm.commands.ICommand;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.adobe.cairngorm.control.CairngormEvent;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.event.LoginEvent;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.model.BuddyAppModelLocator;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.service.LoginDelegate;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.controls.Alert;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.rpc.IResponder;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginCommand </span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">implements</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> ICommand, IResponder</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginCommand()</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> execute(event:CairngormEvent):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> loginEvent:LoginEvent = LoginEvent(event);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> user:User = loginEvent.loginUser;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> lgoinService :LoginDelegate </span></p>
<p class="MsoNormal" style="text-indent:0.5in;margin:0 0 0 1.5in;"><span style="font-size:10pt;color:#000000;font-family:&quot;">=<span>  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginDelegate(</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">this</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>lgoinService.authenticate(user);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> result(event:Object):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> authUser:User = User(event.result);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>BuddyAppModelLocator.getInstance().loginUser = authUser;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>BuddyAppModelLocator.getInstance().viewStackSelectedIndex=1;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> fault(info:Object):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>Alert.show(</span><strong><span style="font-size:10pt;color:#990000;font-family:&quot;">&#8220;Login Fail Error &#8220;</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">Then<span>  </span>Do the mapping<span>  </span>thing<span>  </span>in the front controller.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><strong><em><span style="font-size:10pt;color:#000000;font-family:&quot;">addCommand(LoginEvent.LOGIN_EVENT,LoginCommand);</span></em></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">The command has to<span>  </span>do the business: you have to<span>  </span>add your<span>  </span>business logic code<span>  </span>in<span>  </span>execute method :</span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> lgoinService :LoginDelegate </span></p>
<p class="MsoNormal" style="text-indent:0.5in;margin:0 0 0 1.5in;"><span style="font-size:10pt;color:#000000;font-family:&quot;">=<span>  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">new</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginDelegate(</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">this</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>lgoinService.authenticate(user);</span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">The delegate<span>  </span>is used to<span>  </span>call the data source through the<span>  </span>service locator :</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><em>LoginDelegate.as</em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<blockquote>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">package</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.service</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.adobe.cairngorm.business.ServiceLocator;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> com.ny.flex.cairngorm.vo.User;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">import</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> mx.rpc.IResponder;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#9900cc;font-family:&quot;">class</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginDelegate</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> responder:IResponder;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">private</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> service:Object;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> LoginDelegate(responder :IResponder){</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span><span>  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">this</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">.service = </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>ServiceLocator.getInstance().getRemoteObject(</span><strong><span style="font-size:10pt;color:#990000;font-family:&quot;">&#8220;buddyRo&#8221;</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span><span>  </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">this</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">.responder = responder;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>  </span>authenticate(user:User):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;">{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> call:Object = service.authenticate(user);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>call.addResponder(responder);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>      </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
</blockquote>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;">The result<span>  </span>will be responded<span>  </span>in<span>  </span>the result method<span>  </span>of<span>  </span>The command,<span>  </span>the model<span>  </span>will be updated <span> </span>and<span>   </span>binded to the result view:</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">public</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span><strong><span style="font-size:10pt;color:#339966;font-family:&quot;">function</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> result(event:Object):</span><strong><span style="font-size:10pt;color:#0033ff;font-family:&quot;">void</span></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span></span><strong><span style="font-size:10pt;color:#6699cc;font-family:&quot;">var</span></strong><span style="font-size:10pt;color:#000000;font-family:&quot;"> authUser:User = User(event.result);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span>BuddyAppModelLocator.getInstance().loginUser</span></p>
<p class="MsoNormal" style="text-indent:0.5in;margin:0 0 0 0.5in;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span> </span>= authUser;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>                  </span><span>      </span>BuddyAppModelLocator.getInstance().viewStackSelectedIndex=1;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">The<span>  </span>other<span>  </span>view work flow<span>  </span>is<span>  </span>similar to the above… The FB Project structure like :</span></p>
<p class="MsoNormal" style="margin:0;">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> <a href="http://yongniu.files.wordpress.com/2008/07/buddycairngorm.png"><img class="alignnone size-medium wp-image-62" src="http://yongniu.files.wordpress.com/2008/07/buddycairngorm.png?w=210&#038;h=300" alt="" width="210" height="300" /></a></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">Cairngorm makes<span>  </span>the<span>  </span>application<span>  </span>development<span>  </span>layable, testable. And make the<span>  </span>developer more<span>  </span>professional Geek </span><span style="font-size:10pt;color:#000000;font-family:Wingdings;"><span>J</span></span><span style="font-size:10pt;color:#000000;font-family:&quot;">.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">But<span>  </span>it is complicate and<span>  </span>hard to study<span>  </span>and<span>  </span>maintain. Is there any way<span>  </span>simplify it?</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#000000;font-family:&quot;">Lets move to : Cut It Off-Cairngorm without front controller.</span><span style="font-size:10pt;color:#000000;font-family:&quot;"><span>            </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:12pt;font-family:Times New Roman;"> </span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yongniu.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yongniu.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yongniu.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yongniu.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yongniu.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yongniu.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yongniu.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yongniu.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yongniu.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yongniu.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yongniu.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yongniu.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yongniu.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yongniu.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yongniu.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yongniu.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=57&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yongniu.wordpress.com/2008/07/25/flex-mvc-cairngorm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/327d3f1ae4612f823a56b3779a161d18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mn</media:title>
		</media:content>

		<media:content url="http://yongniu.files.wordpress.com/2008/07/cairngorm.png?w=280" medium="image" />

		<media:content url="http://yongniu.files.wordpress.com/2008/07/buddycairngorm.png?w=210" medium="image" />
	</item>
		<item>
		<title>Flex Central Management</title>
		<link>http://yongniu.wordpress.com/2008/07/23/flex-central-management/</link>
		<comments>http://yongniu.wordpress.com/2008/07/23/flex-central-management/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 16:33:42 +0000</pubDate>
		<dc:creator>Niu Yong</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://yongniu.wordpress.com/?p=42</guid>
		<description><![CDATA[As I discussed  in the  Flex Chaos-All-in-one.  Put  everything  together is not  good solution  for  big project. That means  we need to take the business logic away from  the UI. The Central Management  use  a remote object manager to control the  communication between the  Flex and Back-end . The  architechture  is :   As the above graph shows, Every [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=42&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I discussed  in the  <a href="http://yongniu.wordpress.com/2008/07/21/flex-chaosall-in-one/">Flex Chaos-All-in-one</a>.  Put  everything  together is not  good solution  for  big project. That means  we need to take the business logic away from  the UI.</p>
<p>The Central Management  use  a remote object manager to control the  communication between the  Flex and Back-end . The  architechture  is :</p>
<p style="text-align:center;"><a href="http://yongniu.files.wordpress.com/2008/07/central1.png"><img class="alignnone size-medium wp-image-51" src="http://yongniu.files.wordpress.com/2008/07/central1.png?w=300&#038;h=265" alt="" width="300" height="265" /></a> </p>
<p style="text-align:left;">As the above graph shows, Every UI component will call  a service first, and the service class will call the Central manager class, The central manager class will call the Server side solution .Then  Global Object manager will be used to transfer data  between UIs.</p>
<p style="text-align:left;">Lets  see the  simple buddy list application on this way.</p>
<p style="text-align:left;">LoginView.xml</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;mx:Panel xmlns:mx=&#8221;<a href="http://www.adobe.com/2006/mxml">http://www.adobe.com/2006/mxml</a>&#8221; layout=&#8221;absolute&#8221; width=&#8221;300&#8243; height=&#8221;200&#8243; horizontalAlign=&#8221;center&#8221; verticalAlign=&#8221;middle&#8221; title=&#8221;Flex Central Manager Login&#8221;&gt;<br />
&lt;mx:Script&gt;<br />
 &lt;![CDATA[<br />
  import com.ny.flex.centralManagement.service.LoginService;<br />
  import mx.validators.Validator;<br />
  import mx.containers.ViewStack;<br />
  import mx.rpc.events.ResultEvent;<br />
  private function login():void{<br />
   if(Validator.validateAll(validators).length == 0){<br />
    <strong><em>LoginService.getInstance().login(username.text,password.text);<br />
</em></strong>   }  <br />
  }<br />
 ]]&gt;<br />
&lt;/mx:Script&gt;</p>
<p> &lt;!&#8211;  Validators&#8211;&gt;<br />
 &lt;mx:Array id=&#8221;validators&#8221;&gt;<br />
    &lt;mx:StringValidator  id=&#8221;userNameValidator&#8221; source=&#8221;{username}&#8221;  property=&#8221;text&#8221;  required=&#8221;true&#8221;/&gt;<br />
    &lt;mx:StringValidator  id=&#8221;passwordValidator&#8221; source=&#8221;{password}&#8221;  property=&#8221;text&#8221; required=&#8221;true&#8221; /&gt;<br />
 &lt;/mx:Array&gt;   <br />
&lt;mx:Form id=&#8221;loginForm&#8221; x=&#8221;0&#8243; y=&#8221;0&#8243;&gt;<br />
          &lt;mx:FormItem label=&#8221;Username:&#8221; &gt;<br />
               &lt;mx:TextInput id=&#8221;username&#8221; /&gt;<br />
           &lt;/mx:FormItem&gt;<br />
           &lt;mx:FormItem label=&#8221;Password:&#8221; &gt;<br />
               &lt;mx:TextInput id=&#8221;password&#8221; displayAsPassword=&#8221;true&#8221; /&gt;<br />
           &lt;/mx:FormItem&gt;<br />
           &lt;mx:FormItem direction=&#8221;horizontal&#8221; verticalGap=&#8221;15&#8243; paddingTop=&#8221;5&#8243; width=&#8221;170&#8243;&gt;<br />
               &lt;mx:Button id=&#8221;loginBtn&#8221; label=&#8221;Login&#8221; click=&#8221;login()&#8221;/&gt;<br />
           &lt;/mx:FormItem&gt;<br />
    &lt;/mx:Form&gt;<br />
    <br />
&lt;/mx:Panel&gt;</p></blockquote>
<p>The core  function  above is :<br />
<strong><em>LoginService.getInstance().login(username.text,password.text);</em></strong> </p>
<p>It separate the business logic  from the view component.  The service class  is always the  singleton, since we don&#8217;t use it to carry any status.</p>
<p>Lets see  the class LoginService:</p>
<blockquote><p>import com.ny.flex.centralManagement.event.DataManagerResultEvent;<br />
 import com.ny.flex.centralManagement.manager.GlobalObjectManager;<br />
 import com.ny.flex.centralManagement.manager.RemoteObjectManager;<br />
 <br />
 public class LoginService<br />
 {<br />
<strong><em>  public var roManager:RemoteObjectManager = null; <br />
  public var gom:GlobalObjectManager = GlobalObjectManager.getInstance();</em></strong></p>
<p>  private static var _instance:LoginService =null;<br />
  <br />
  public static function getInstance():LoginService{<br />
   if(_instance == null){<br />
    _instance =  new LoginService(new PrivateClass)<br />
   }<br />
   return _instance;<br />
   <br />
  }<br />
  public function LoginService(privateclass:PrivateClass)<br />
  {<br />
   if(LoginService._instance == null){<br />
    LoginService._instance =  this;<br />
   }<br />
  }<br />
  public function login(userName:String,password:String):void{<br />
 roManager = <strong><em>RemoteObjectManager.getRemoteObjectManager(&#8220;flexmvcRO&#8221;);</em></strong><br />
   roManager.addEventListener(&#8220;getLoginUser&#8221;,loginHandler);<br />
   var params:Array = new Array(userName,password);<br />
   <br />
   roManager.makeRemoteCall(&#8220;getLoginUserName&#8221;,&#8221;getLoginUser&#8221;,params);<br />
  }</p>
<p>  private function loginHandler(event:DataManagerResultEvent):void {<br />
   var userName:String = event.result as String;<br />
   if(userName){<br />
<strong><em>    gom.loginUserName = userName;<br />
    gom.viewStackSelectedIndex=1;<br />
</em></strong>   }<br />
  }</p>
<p> }</p></blockquote>
<p> </p>
<p>There are 2 special objects :</p>
<p>    RemoteObjectManager</p>
<p>   GlobalObjectManager</p>
<p>RemoteObjectManager is  a singleton class to implement central manage all the  Remote Object communication. The original code is from Jeff Tapper&#8217;s blog :</p>
<p><a href="http://jeff.mxdj.com/creating_a_remote_object_datamanager_in_actionscript_30_for_.htm">Creating a Remote Object DataManager in ActionScript 3.0 for Flex 2.0</a></p>
<p>The &#8220;GlobalObjectManager&#8221;  is used to  keep the information  between  UIs ,  for example   we use  viewstack selectedIndex to  decide which view will show  on the sample  application , so the global object viewStackSelectedIndex is used  in the application view :</p>
<blockquote><p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;mx:Application xmlns:mx=&#8221;<a href="http://www.adobe.com/2006/mxml">http://www.adobe.com/2006/mxml</a>&#8220;  xmlns:views=&#8221;com.ny.flex.centralManagement.views.*&#8221; layout=&#8221;absolute&#8221;  width=&#8221;100%&#8221; height=&#8221;100%&#8221;&gt;<br />
&lt;mx:Script&gt;<br />
 &lt;![CDATA[<br />
  import mx.binding.utils.BindingUtils;<br />
  import com.ny.flex.centralManagement.manager.GlobalObjectManager;<br />
<strong><em>  [Bindable]<br />
  public  var gom:GlobalObjectManager=GlobalObjectManager.getInstance();<br />
</em></strong> ]]&gt;<br />
&lt;/mx:Script&gt;<br />
    &lt;mx:HBox  horizontalAlign=&#8221;center&#8221; verticalAlign=&#8221;top&#8221;  width=&#8221;100%&#8221; height=&#8221;100%&#8221; y=&#8221;0&#8243; x=&#8221;0&#8243;&gt;<br />
    &lt;mx:ViewStack id=&#8221;viewStack&#8221;  resizeToContent=&#8221;true&#8221; <strong><em>selectedIndex=&#8221;{gom.viewStackSelectedIndex}&#8221;</em></strong> &gt;<br />
        &lt;views:LoginView  /&gt;<br />
        &lt;views:BuddyListView/&gt;<br />
    &lt;/mx:ViewStack&gt;<br />
    &lt;/mx:HBox&gt;</p>
<p>&lt;/mx:Application&gt;</p></blockquote>
<p> Just  look back the loginHandler method in LoginService , the  global object  is updated:</p>
<p>  private function loginHandler(event:DataManagerResultEvent):void {<br />
   var userName:String = event.result as String;<br />
   if(userName){<br />
<strong><em>    gom.loginUserName = userName;<br />
    gom.viewStackSelectedIndex=1;<br />
</em></strong>   }<br />
  }</p>
<p>The [Bindable] makes the change  affect immediately.</p>
<p>The list show is BuddyList.mxml:</p>
<blockquote><p> &lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;mx:Panel xmlns:mx=&#8221;<a href="http://www.adobe.com/2006/mxml">http://www.adobe.com/2006/mxml</a>&#8221; title=&#8221;Buddy List of {gom.loginUserName}&#8221; creationComplete=&#8221;init()&#8221; width=&#8221;500&#8243; height=&#8221;320&#8243;&gt;<br />
&lt;mx:Script&gt;<br />
 &lt;![CDATA[<br />
  import com.ny.flex.centralManagement.service.BuddyService;<br />
  import com.ny.flex.centralManagement.manager.GlobalObjectManager;<br />
  import mx.collections.ArrayCollection;<br />
  import mx.rpc.events.ResultEvent;<br />
  [Bindable]<br />
  public var gom:GlobalObjectManager = GlobalObjectManager.getInstance();<br />
  <br />
  private function init():void{<br />
<strong><em>   BuddyService.getInstance().getBuddyList();<br />
</em></strong>  }<br />
 ]]&gt;<br />
&lt;/mx:Script&gt;</p>
<p> &lt;mx:DataGrid id=&#8221;buddyList&#8221;  dataProvider=&#8221;{gom.mybuddyList}&#8221;  borderStyle=&#8221;none&#8221; width=&#8221;100%&#8221; height=&#8221;100%&#8221; &gt;<br />
       &lt;mx:columns&gt;<br />
        &lt;mx:DataGridColumn dataField=&#8221;firstName&#8221; headerText=&#8221;First Name&#8221;/&gt;<br />
        &lt;mx:DataGridColumn dataField=&#8221;lastName&#8221; headerText=&#8221;Last Name&#8221;/&gt;<br />
    &lt;/mx:columns&gt;</p></blockquote>
<p> &lt;/mx:DataGrid&gt;<br />
&lt;/mx:Panel&gt;</p>
<p>BuddyService  is another  service class to communicate the Remote Object.</p>
<p>This is  my favorate  architecture to develop flex webapps. It is very clean, There is  no junk dispatch and listener.  and it is  very easy to maintain. But I don&#8217;t have enough theory supports  it.</p>
<p>Next  lets move to MVC: <a href="http://yongniu.wordpress.com/2008/07/25/flex-mvc-cairngorm/">Flex MVC-Cairngorm</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yongniu.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yongniu.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yongniu.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yongniu.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yongniu.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yongniu.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yongniu.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yongniu.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yongniu.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yongniu.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yongniu.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yongniu.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yongniu.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yongniu.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yongniu.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yongniu.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=42&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yongniu.wordpress.com/2008/07/23/flex-central-management/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/327d3f1ae4612f823a56b3779a161d18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mn</media:title>
		</media:content>

		<media:content url="http://yongniu.files.wordpress.com/2008/07/central1.png?w=300" medium="image" />
	</item>
		<item>
		<title>Flex Chaos:All-in-one</title>
		<link>http://yongniu.wordpress.com/2008/07/21/flex-chaosall-in-one/</link>
		<comments>http://yongniu.wordpress.com/2008/07/21/flex-chaosall-in-one/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 19:15:55 +0000</pubDate>
		<dc:creator>Niu Yong</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://yongniu.wordpress.com/?p=23</guid>
		<description><![CDATA[Flex is born with event-driven. That means  Flex can do  anything by  its own tag. So The simplest way to develop Flex application naturally  is  using  Flex Tags. Lets shot  the code In Loginview, the display part as usual:  &#60;mx:Form id=&#8221;loginForm&#8221; x=&#8221;0&#8243; y=&#8221;0&#8243;&#62;           &#60;mx:FormItem label=&#8221;Username:&#8221; &#62;                &#60;mx:TextInput id=&#8221;username&#8221; /&#62;            &#60;/mx:FormItem&#62;            &#60;mx:FormItem label=&#8221;Password:&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=23&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Flex is born with event-driven. That means  Flex can do  anything by  its own tag. So The simplest way to develop Flex application naturally  is  using  Flex Tags. Lets shot  the code</p>
<p>In Loginview, the display part as usual:</p>
<blockquote><p> &lt;mx:Form id=&#8221;loginForm&#8221; x=&#8221;0&#8243; y=&#8221;0&#8243;&gt;<br />
          &lt;mx:FormItem label=&#8221;Username:&#8221; &gt;<br />
               &lt;mx:TextInput id=&#8221;username&#8221; /&gt;<br />
           &lt;/mx:FormItem&gt;<br />
           &lt;mx:FormItem label=&#8221;Password:&#8221; &gt;<br />
               &lt;mx:TextInput id=&#8221;password&#8221; displayAsPassword=&#8221;true&#8221; /&gt;<br />
           &lt;/mx:FormItem&gt;<br />
           &lt;mx:FormItem direction=&#8221;horizontal&#8221; verticalGap=&#8221;15&#8243; paddingTop=&#8221;5&#8243; width=&#8221;170&#8243;&gt;<br />
               &lt;mx:Button id=&#8221;loginBtn&#8221; label=&#8221;Login&#8221; click=&#8221;login()&#8221;/&gt;<br />
           &lt;/mx:FormItem&gt;<br />
 &lt;/mx:Form&gt;</p></blockquote>
<p>And use  tag &lt;mx:RemoteObject&gt; to call the service  :</p>
<blockquote><p>&lt;mx:RemoteObject  id=&#8221;loginReq&#8221; destination=&#8221;flexmvcRO&#8221;&gt;<br />
    &lt;mx:method name=&#8221;login&#8221; result=&#8221;loginHandler(event)&#8221; fault=&#8221;mx.controls.Alert.show(event.fault.faultString)&#8221;&gt;<br />
     &lt;mx:arguments&gt;<br />
      &lt;userName&gt;{username.text}&lt;/userName&gt;<br />
      &lt;password&gt;{password.text}&lt;/password&gt;<br />
     &lt;/mx:arguments&gt;<br />
    &lt;/mx:method&gt;<br />
&lt;/mx:RemoteObject&gt;</p></blockquote>
<p>Now, we need  send the  request in  login method:</p>
<blockquote><p>   if(Validator.validateAll(validators).length == 0){<br />
     <strong><em>loginReq.login.send();</em></strong><br />
   }  </p></blockquote>
<p>After sending the request  A Result handler should be created:</p>
<blockquote><p>  private function  loginHandler(event:ResultEvent):void{<br />
    var isLogin:Boolean = event.result as Boolean;<br />
   if(isLogin){<br />
    this.parentApplication.viewStack.selectedIndex=1;<br />
   <strong><em> dispatchEvent(new LoginUserEvent(username.text));<br />
</em></strong>   }<br />
  }</p></blockquote>
<p>Finally A connection between the pages  should be  built. I use dispatch event :</p>
<p><strong><em>dispatchEvent(new LoginUserEvent(username.text));</em></strong></p>
<p>you want to dispatch event  you have to  add Meta tag in you page :</p>
<p> &lt;mx:Metadata&gt;<br />
     [Event(name="loginUser", type="flash.events.Event")]<br />
&lt;/mx:Metadata&gt;</p>
<p>It is time to create the  custom event LoginUserEvent.as:</p>
<blockquote><p>import flash.events.Event;</p>
<p> public class LoginUserEvent extends Event<br />
 {<br />
  public static const LOGINUSEREVENT:String =&#8221;loginUser&#8221;;<br />
  public var loginUserName:String = &#8220;&#8221;;<br />
  <br />
  public function LoginUserEvent(userName:String)<br />
  {<br />
   super(LOGINUSEREVENT, true, true);<br />
   this.loginUserName = userName;<br />
  }<br />
  override public function clone():Event {<br />
     <br />
      return new LoginUserEvent(loginUserName);<br />
     <br />
   }</p></blockquote>
<p>The  Buddy list page(BuddyListVew.mxml) will show up after successful login:</p>
<p>First of first,  the  list page should listen the  LoginUserEvent,  so  a <span style="text-decoration:underline;">preinitialize </span>mehtod will be called:</p>
<blockquote><p>&lt;mx:Panel xmlns:mx=&#8221;<a href="http://www.adobe.com/2006/mxml">http://www.adobe.com/2006/mxml</a>&#8221; title=&#8221;Buddy List of {loginUserName}&#8221;     preinitialize=&#8221;init()&#8221; width=&#8221;500&#8243; height=&#8221;320&#8243;&gt;</p></blockquote>
<blockquote><p>   private function init():void{<br />
   this.parentApplication.addEventListener(LoginUserEvent.LOGINUSEREVENT, getUserName);<br />
 }</p></blockquote>
<p>It is time to handle the event listener:</p>
<blockquote>
<p align="left">private function getUserName(event:LoginUserEvent):void{</p>
<p align="left">loginUserName = event.loginUserName;</p>
<p align="left"><strong><em>loginReq.getAllFriends.send();</em></strong></p>
<p align="left">}</p>
</blockquote>
<p align="left">then send request to get all Buddy and  handle it:</p>
<p align="left">   private function getAllFriendsHandler(event:ResultEvent):void{<br />
   mybuddyList = event.result as ArrayCollection;<br />
   <br />
  }</p>
<p align="left">
<p align="left">Don&#8217;t forget the remote object:</p>
<blockquote>
<p align="left">&lt;mx:RemoteObject  id=&#8221;loginReq&#8221; destination=&#8221;flexmvcRO&#8221;&gt;<br />
    &lt;mx:method name=&#8221;getAllFriends&#8221; result=&#8221;getAllFriendsHandler(event)&#8221; fault=&#8221;mx.controls.Alert.show(event.fault.faultString)&#8221;&gt;<br />
     &lt;mx:arguments&gt;<br />
      &lt;userName&gt;{loginUserName}&lt;/userName&gt;<br />
     &lt;/mx:arguments&gt;<br />
    &lt;/mx:method&gt;<br />
&lt;/mx:RemoteObject&gt;</p></blockquote>
<p>That is  all-in-one style: You only need us  flex tag. nothing else. It is simple. and It is powerful if your system is simple  and the business logic is not  complicate.  you can do it by this  way. But  there  is no  real project as simple as this example.  Typically  there are lots of  remote object calls  in the real project.</p>
<p align="left">So  It is time to move on : <a href="http://yongniu.wordpress.com/2008/07/23/flex-central-management/">Flex Central Management</a>.</p>
<p> </p>
<p align="left"> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yongniu.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yongniu.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yongniu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yongniu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yongniu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yongniu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yongniu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yongniu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yongniu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yongniu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yongniu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yongniu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yongniu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yongniu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yongniu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yongniu.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=23&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yongniu.wordpress.com/2008/07/21/flex-chaosall-in-one/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/327d3f1ae4612f823a56b3779a161d18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mn</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex Development Evolvement</title>
		<link>http://yongniu.wordpress.com/2008/07/17/flex-mvc-evolvement/</link>
		<comments>http://yongniu.wordpress.com/2008/07/17/flex-mvc-evolvement/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 22:17:20 +0000</pubDate>
		<dc:creator>Niu Yong</dc:creator>
				<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://yongniu.wordpress.com/?p=5</guid>
		<description><![CDATA[Flex is the No.1 choice  to develop RIA  application. And Java is  No.1 choice for Enterprise application. So the migration solution  should be that   use  Flex to  develop the  front-end, and  Java  for back-end. The Architecture is :   There are many different ways to  implement above architecture.  This series blogs will show  my experience [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=5&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Flex is the No.1 choice  to develop RIA  application. And Java is  No.1 choice for Enterprise application. So the migration solution  should be that   use  Flex to  develop the  front-end, and  Java  for back-end. The Architecture is :</p>
<p style="text-align:center;"><a href="http://yongniu.files.wordpress.com/2008/07/flexjava.png"><img class="size-medium wp-image-9 aligncenter" src="http://yongniu.files.wordpress.com/2008/07/flexjava.png?w=300&#038;h=147" alt="" width="300" height="147" /></a></p>
<p style="text-align:center;"><strong></strong></p>
<p style="text-align:left;"> </p>
<p style="text-align:left;">There are many different ways to  implement above architecture.  This series blogs will show  my experience and  evolvement of Flex Application development:</p>
<p style="text-align:left;">1.<strong> </strong><a href="http://yongniu.wordpress.com/2008/07/21/flex-chaosall-in-one/"><strong>Flex Chaos: All-in-one</strong></a></p>
<p style="text-align:left;">2.<strong> </strong><a href="http://yongniu.wordpress.com/2008/07/23/flex-central-management/"><strong>Flex Central Managerment</strong></a></p>
<p style="text-align:left;">3.<a href="http://yongniu.wordpress.com/2008/07/25/flex-mvc-cairngorm/"><strong>Flex MVC-Cairngorm</strong></a></p>
<p style="text-align:left;">4. Cut It Off-Cairngorm without front controller</p>
<p style="text-align:left;">5. Tag Based-Mate</p>
<p style="text-align:left;"> </p>
<p style="text-align:left;"><strong>Sample application</strong></p>
<p style="text-align:left;">I use a very simple  application to show the dvelop process. I call it  buddyList.  There are  two views :</p>
<p style="text-align:left;">Login View:</p>
<p style="text-align:left;"><a href="http://yongniu.files.wordpress.com/2008/07/buddylogin.png"><img class="aligncenter size-medium wp-image-10" src="http://yongniu.files.wordpress.com/2008/07/buddylogin.png?w=300&#038;h=198" alt="" width="300" height="198" /></a></p>
<p style="text-align:left;"> input username and  password  click login  the buddyList view will show:</p>
<p style="text-align:left;"><a href="http://yongniu.files.wordpress.com/2008/07/buddylist.png"><img class="alignnone size-medium wp-image-11" src="http://yongniu.files.wordpress.com/2008/07/buddylist.png?w=482&#038;h=316" alt="" width="482" height="316" /></a></p>
<p style="text-align:left;">This  application  use  Remote Object to  implement server side data communication by BlazeDS,  I create some  simple  java code to get  some dummy data  from server side  The realated  classes and  files  are :</p>
<p style="text-align:left;">1. add the  java remote  destination in Remote-config.xml :</p>
<blockquote>
<p style="text-align:left;"> &lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;service id=&#8221;remoting-service&#8221;<br />
    class=&#8221;flex.messaging.services.RemotingService&#8221;&gt;</p>
<p style="text-align:left;">    &lt;adapters&gt;<br />
        &lt;adapter-definition id=&#8221;java-object&#8221; class=&#8221;flex.messaging.services.remoting.adapters.JavaAdapter&#8221; default=&#8221;true&#8221;/&gt;<br />
    &lt;/adapters&gt;</p>
<p style="text-align:left;">    &lt;default-channels&gt;<br />
        &lt;channel ref=&#8221;my-amf&#8221;/&gt;<br />
    &lt;/default-channels&gt;<br />
    &lt;destination id=&#8221;flexmvcRO&#8221;&gt;<br />
     &lt;properties&gt;<br />
      &lt;source&gt;com.ny.blog.flex.mvc.accessor.DummyAccessor&lt;/source&gt;<br />
      &lt;scope&gt;session&lt;/scope&gt;<br />
      &lt;/properties&gt;<br />
     &lt;adapter ref=&#8221;java-object&#8221; /&gt;<br />
    &lt;/destination&gt;</p>
<p style="text-align:left;">&lt;/service&gt;</p>
</blockquote>
<p style="text-align:left;"><strong>2. </strong>DummyAccessor.java:</p>
<blockquote>
<p style="text-align:left;">package com.ny.blog.flex.mvc.accessor;</p>
<p style="text-align:left;">import java.util.ArrayList;<br />
import java.util.List;</p>
<p style="text-align:left;">import com.ny.blog.flex.mvc.pojo.Friend;</p>
<p style="text-align:left;">public class DummyAccessor {</p>
<p style="text-align:left;"> public DummyAccessor() {<br />
 }<br />
 <br />
 public boolean login(String userName,String password){<br />
  return true;<br />
 }<br />
 <br />
 public  List&lt;Friend&gt; getAllFriends(String userName){<br />
  List&lt;Friend&gt; myBuddy = new ArrayList&lt;Friend&gt;();<br />
  Friend dummy1 = new Friend();<br />
  dummy1.setFirstName(&#8220;John&#8221;);<br />
  dummy1.setLastName(&#8220;Smith&#8221;);<br />
  myBuddy.add(dummy1);<br />
  <br />
  Friend dummy2 = new Friend();<br />
  dummy2.setFirstName(&#8220;Andy&#8221;);<br />
  dummy2.setLastName(&#8220;Jones&#8221;);<br />
  myBuddy.add(dummy2);<br />
  <br />
  Friend dummy3 = new Friend();<br />
  dummy3.setFirstName(&#8220;Michael&#8221;);<br />
  dummy3.setLastName(&#8220;Niu&#8221;);<br />
  myBuddy.add(dummy3);<br />
  return myBuddy;<br />
 }<br />
 </p></blockquote>
<p style="text-align:left;">3. The pojo Friend.java</p>
<blockquote><p>public class Friend {<br />
 private String firstName;<br />
 private String lastName;<br />
 private String nickName;</p>
<p>public Friend() {<br />
 }</p>
<p>//getter and setters<br />
&#8230;<br />
}</p></blockquote>
<div><strong>Lets  start it  from  : <a href="http://yongniu.wordpress.com/2008/07/21/flex-chaosall-in-one/">Flex Chaos: All-in-one</a></strong></div>
<div><strong></strong></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/yongniu.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/yongniu.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yongniu.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yongniu.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yongniu.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yongniu.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yongniu.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yongniu.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yongniu.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yongniu.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yongniu.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yongniu.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yongniu.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yongniu.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yongniu.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yongniu.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yongniu.wordpress.com&amp;blog=4234541&amp;post=5&amp;subd=yongniu&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yongniu.wordpress.com/2008/07/17/flex-mvc-evolvement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/327d3f1ae4612f823a56b3779a161d18?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mn</media:title>
		</media:content>

		<media:content url="http://yongniu.files.wordpress.com/2008/07/flexjava.png?w=300" medium="image" />

		<media:content url="http://yongniu.files.wordpress.com/2008/07/buddylogin.png?w=300" medium="image" />

		<media:content url="http://yongniu.files.wordpress.com/2008/07/buddylist.png" medium="image" />
	</item>
	</channel>
</rss>
