package flater.cairngormtips.controller.delegates
{
import com.universalmind.cairngorm.business.Delegate;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flater.cairngormtips.util.out;
import mx.rpc.IResponder;
/**
* A delegate for performing the operations for the
* EventGenerator Example.<br/>
* <br/>
* Author: <a href="http://www.adamflater.net" target="_blank">
* Adam Flater</a>
* <br/>
*
* @see flater.cairngormtips.controller.commands.ConfigurationCommand
* @see flater.cairngormtips.controller.commands.DownloadCommand
* @see flater.cairngormtips.EventGeneratorExampleApplication
*/
public class EventGeneratorExampleDelegate extends Delegate
{
private static const CONFIG_URL : String =
"assets/config/configuration.xml";
public function EventGeneratorExampleDelegate(
commandHandlers : IResponder = null )
{
super( commandHandlers );
out( "EventGeneratorExampleDelegate Instantiated" );
}
/**
* Downloads the config xml data for the application
*/
public function getConfig() : void
{
out( "EventGeneratorExampleDelegate.getConfig() invoked" );
var loader : URLLoader = new URLLoader();
loader.addEventListener( Event.COMPLETE,
getConfig_Result );
loader.addEventListener( IOErrorEvent.IO_ERROR,
getConfig_Fault );
loader.addEventListener( SecurityErrorEvent.SECURITY_ERROR,
getConfig_Fault );
loader.load( new URLRequest( CONFIG_URL ) );
}
/**
* @private
*
* Event handler; Responds to the results of the getConfig
* operation.
*/
private function getConfig_Result( e : Event ) : void
{
out( "EventGeneratorExampleDelegate.getConfig_Result() " +
"invoked" );
var loader : URLLoader = e.target as URLLoader;
var xml : XML = XML( loader.data );
responder.result( xml );
}
/**
* @private
*
* Event handler; Responds to the faults of the getConfig
* operation.
*/
private function getConfig_Fault( e : Event ) : void
{
out( "EventGeneratorExampleDelegate.getConfig_Fault() " +
"invoked" );
responder.fault( e );
}
/**
* Downloads the resource specified by the url.
*/
public function downloadSomthing( url : String ) : void
{
out( "EventGeneratorExampleDelegate.downloadSomthing() " +
"invoked" );
var loader : URLLoader = new URLLoader();
loader.addEventListener( Event.COMPLETE,
downloadSomthing_Result )
loader.addEventListener( IOErrorEvent.IO_ERROR,
downloadSomthing_Fault )
loader.addEventListener( SecurityErrorEvent.SECURITY_ERROR,
downloadSomthing_Fault )
loader.load( new URLRequest( url ) );
}
/**
* @private
*
* Event handler; Responds to the results of the downloadSomthing
* operation.
*/
private function downloadSomthing_Result( e : Event ) : void
{
out( "EventGeneratorExampleDelegate.downloadSomthing_Result() " +
"invoked" );
var loader : URLLoader = e.target as URLLoader;
responder.result( loader.data );
}
/**
* @private
*
* Event handler; Responds to the faults of the downloadSomthing
* operation.
*/
private function downloadSomthing_Fault( e : Event ) : void
{
out( "EventGeneratorExampleDelegate.downloadSomthing_Fault() " +
"invoked" );
responder.fault( e );
}
} }