ThomasBurleson
7/4/2011 - 4:15 PM

Signals with Swiz and [SignalHandler]

Signals with Swiz and [SignalHandler]

package control
{
	public class AlertsController
	{
		[Inject( "alertsDelegate" )]
		public var delegate:CacheEnabledDelegate;
		
		[Inject]
		public var serviceHelper:IServiceHelper;
		
		[Inject]
		public var model:AlertsModel;
		
		[Inject]
		public var prefs:Prefs;
		
		[Inject]
		public var loadSuccess:AlertsLoadSuccess;
		
		[Inject]
		public var loadFailure:AlertsLoadFailure;
		
		[SignalHandler( type="AlertsLoadRequest" )]
		public function loadAlerts():void
		{
			serviceHelper.executeServiceCall( delegate.load( model.alerts != null ), loadAlerts_result, loadAlerts_fault );
		}
		
		protected function loadAlerts_result( data:Object ):void
		{
			model.setAlerts( data.result as ArrayCollection );
			
			prefs.alertsLastUpdated = new Date();
			prefs.save();
			
			loadSuccess.dispatch();
		}
		
		protected function loadAlerts_fault( info:Object ):void
		{
			loadFailure.dispatch();
		}
	}
}