package flater.cairngormtips.controller.delegates
{
import com.universalmind.cairngorm.business.Delegate;
import com.universalmind.cairngorm.events.Callbacks;
import flater.cairngormtips.util.out;
import mx.rpc.AsyncToken;
import mx.rpc.IResponder;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.mxml.HTTPService;
/**
* A delegate for performing the getItems operation for the
* <code>DataTranslatorExampleApplication</code><br/>
* <br/>
* Author: <a href="http://www.adamflater.net" target="_blank">
* Adam Flater</a>
* <br/>
*
* @see flater.cairngormtips.controller.commands.ItemsCommand
* @see flater.cairngormtips.DataTranslatorExampleApplication
*/
public class DataTranslatorExampleDelegate extends Delegate
{
public function DataTranslatorExampleDelegate(
commandHandlers : IResponder = null )
{
super( commandHandlers, "itemsService" );
out( "DataTranslatorExampleDelegate Instantiated" );
}
/**
* Downloads the config xml data for the application
*/
public function getItems() : void
{
out( "DataTranslatorExampleDelegate.getItems() invoked" );
var token : AsyncToken = (service as HTTPService).send();
prepareHandlers( token, new Callbacks( getItems_Result,
getItems_Fault ) );
}
/**
* @private
*
* Event handler; Responds to the results of the getItems
* operation.
*/
private function getItems_Result( info : Object ) : void
{
out( "DataTranslatorExampleDelegate.getItems_Result() " +
"invoked" );
var xml : XML = ( info as ResultEvent ).result as XML;
var items : Array =
ExampleDataTranslator.ParseItems( xml.item );
responder.result( items );
}
/**
* @private
*
* Event handler; Responds to the faults of the getItems
* operation.
*/
private function getItems_Fault( info : Object ) : void
{
out( "DataTranslatorExampleDelegate.getItems_Fault() " +
"invoked" );
responder.fault( info );
}
} }