<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:observer="com.adobe.cairngorm.observer.*">
<mx:Script>
<![CDATA[
import com.adobe.cairngorm.observer.Person;
[Bindable]
private var person:Person = new Person();
private function observe(parameter:String):void
{
trace("observe " + parameter);
if (statusText)
statusText.text += "observe " + parameter + "\n";
}
private function observeWithoutParameter():void
{
trace("observeWithoutParameter");
if (statusText)
statusText.text += "observeWithoutParameter" + "\n";
}
private function observeValue():void
{
trace("observeValue");
statusText.text += "observeValue" + "\n";
}
private function observeValueWithParameter(parameter:String):void
{
trace("observeValueWithParameter " + parameter);
if (statusText)
statusText.text += "observeValueWithParameter " + parameter + "\n";
}
private function eventListener(event:Event):void
{
trace("eventListener " + event.type);
statusText.text += "eventListener " + event.type + "\n";
}
private function eventListenerWithoutParameter():void
{
trace("eventListenerWithoutParameter");
statusText.text += "eventListenerWithoutParameter" + "\n";
}
]]>
</mx:Script>
<observer:Observe source="{ person.firstName }" handler="observe" />
<observer:Observe
source="{ person.firstName }"
handler="observeWithoutParameter"
sendArgumentsToHandler="false" />
<observer:ObserveValue
source="{ person.lastName }" value="{ 'bar' }"
handler="observeValue" />
<observer:ObserveValue
source="{ person.lastName }" value="{ 'bar' }"
handler="observeValueWithParameter"
sendArgumentsToHandler="true" />
<observer:EventListener
source="{ person }"
type="{ Person.UPDATE_EVENT }"
handler="eventListener" />
<observer:EventListener
source="{ person }"
type="{ Person.UPDATE_EVENT }"
handler="eventListenerWithoutParameter"
sendArgumentsToHandler="false" />
<mx:HBox>
<mx:VBox>
<mx:Button label="observe change to foo" click="person.firstName = 'foo'" />
<mx:Button label="observe change to bar" click="person.firstName = 'bar'" />
<mx:Button label="observeValue change to foo" click="person.lastName = 'foo'" />
<mx:Button label="observeValue change to bar" click="person.lastName = 'bar'" />
<mx:Button label="dispatchUpdateEvent" click="person.dispatchUpdateEvent()" />
</mx:VBox>
<mx:TextArea id="statusText"
width="400" height="600" />
</mx:HBox>
</mx:Application>