<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
horizontalAlign="center" verticalAlign="middle"
creationComplete="{creationCompleteHandler()}"
viewSourceURL="srcview/index.html"
>
<mx:RemoteObject showBusyCursor="true" destination="playerDataServiceImpl" source="views" id="views">
<mx:method name="get" result="{onViewsResult(event)}" fault="{onFault(event)}" />
</mx:RemoteObject>
<mx:RemoteObject showBusyCursor="true" destination="playerDataServiceImpl" source="system" id="system">
<mx:method name="connect" result="{onSystemConnect(event)}" fault="{onFault(event)}" />
</mx:RemoteObject>
<mx:RemoteObject showBusyCursor="true" destination="playerDataServiceImpl" source="user" id="user">
<mx:method name="login" result="{onUserLogin(event)}" fault="{onFault(event)}" />
</mx:RemoteObject>
<mx:RemoteObject showBusyCursor="true" destination="playerDataServiceImpl" source="node" id="node">
<mx:method name="get" result="{onNodeGet(event)}" fault="{onFault(event)}" />
</mx:RemoteObject>
<mx:Panel
width="800" height="600"
title="Execute a Drupal service call by clicking a button below"
paddingTop="5" paddingLeft="5" paddingBottom="5" paddingRight="5"
>
<mx:HBox>
<mx:Button label="Simple service call" id="simpleServiceButton" click="{simpleServiceButtonClickHandler(event)}" />
<mx:Button label="Service call with authentication" id="authenticatedServiceButton" click="{authenticatedServiceButtonClickHandler(event)}" />
</mx:HBox>
<mx:DataGrid id="ref_dg" dataProvider="{testResult}" width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="NID" dataField="nid" />
<mx:DataGridColumn headerText="TITLE" dataField="node_title" />
<mx:DataGridColumn headerText="BODY" dataField="node_revisions_body" />
</mx:columns>
</mx:DataGrid>
</mx:Panel>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.utils.ArrayUtil;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private var currentStrategy:IStrategy;
private var simpleCall:SimpleCall;
private var callWithLogin:CallWithLogin;
private var _testResult:Array;
public function set testResult(value:Array):void
{
_testResult = value;
}
[Bindable] public function get testResult():Array
{
return _testResult;
}
/**
* Initialization
*
* The strategy is set, a reference to this UI is given as an argument for the
* implementation to work with.
*/
protected function init():void
{
simpleCall = new SimpleCall();
callWithLogin = new CallWithLogin();
}
protected function doServiceCall(servStrat:IStrategy):void
{
currentStrategy = servStrat;
servStrat.execute(this);
}
private function creationCompleteHandler():void
{
init();
}
private function simpleServiceButtonClickHandler(e:Event):void
{
doServiceCall(simpleCall);
}
private function authenticatedServiceButtonClickHandler(e:Event):void
{
doServiceCall(callWithLogin);
}
private function onViewsResult(event:ResultEvent):void
{
testResult = ArrayUtil.toArray(event.result);
}
private function onFault(event:FaultEvent):void
{
Alert.show(event.fault.faultString, "Error");
}
private function onSystemConnect(event:ResultEvent):void
{
currentStrategy.onSystemConnect(event); }
private function onUserLogin(event:ResultEvent):void
{
(currentStrategy as CallWithLogin).onUserLogin(event); }
private function onNodeGet(event:ResultEvent):void
{
testResult = [{nid:event.result.nid, node_title:event.result.title, node_revisions_body:event.result.body}];
}
]]>
</mx:Script>
</mx:Application>