Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AdminDataLoadingService extends Actor implements IAdminDataLoadingService {
- [Inject]
- public var loadingURLVarsFactory:ILoadingURLVarsFactory;
- [Inject(name='loadingScriptPath')]
- public var loadingScriptPath:String;
- [Inject]
- public var adminXMLToModelProcessor:IAdminXMLToModelProcessor;
- protected var _loadingDataVOType:Class;
- //--------------------------------------------------------------------------
- //
- // Initialization
- //
- //--------------------------------------------------------------------------
- public function AdminDataLoadingService()
- {
- super();
- }
- //--------------------------------------------------------------------------
- //
- // API
- //
- //--------------------------------------------------------------------------
- //---------------------------------------
- // IAdminDataLoadingService Implementation
- //---------------------------------------
- public function loadData():void
- {
- var urlLoader:URLLoader = new URLLoader();
- var urlRequest:URLRequest = createLoadRequestForDataType(_loadingDataVOType)
- addCommonEventListeners(urlLoader);
- urlLoader.load(urlRequest);
- }
- protected function createLoadRequestForDataType(dataClass:Class):URLRequest
- {
- var urlReq:URLRequest = new URLRequest();
- urlReq.url = loadingScriptPath;
- urlReq.data = loadingURLVarsFactory.createLoadingURLVarsForDataType(dataClass);
- urlReq.method = URLRequestMethod.POST;
- return urlReq;
- }
- protected function addCommonEventListeners(urlLoader:URLLoader):void
- {
- urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
- urlLoader.addEventListener(Event.COMPLETE, completeHandler);
- }
- protected function removeCommonEventListeners(urlLoader:URLLoader):void
- {
- urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
- urlLoader.removeEventListener(Event.COMPLETE, completeHandler);
- }
- protected function ioErrorHandler(e:IOErrorEvent):void
- {
- //trace("AdminDataLoadingService::ioErrorHandler()");
- removeCommonEventListeners(e.target as URLLoader);
- var evt:AdminDataServiceUpdateEvent = new AdminDataServiceUpdateEvent(AdminDataServiceUpdateEvent.DATA_LOADING_ERROR);
- dispatch(evt);
- }
- protected function completeHandler(e:Event):void
- {
- var urlLoader:URLLoader = e.target as URLLoader;
- //trace("urlLoader.data: " + urlLoader.data);
- var urlVars:URLVariables = new URLVariables(urlLoader.data);
- processLoadedData(urlVars);
- dispatchServiceCompleteEvent();
- }
- protected function processLoadedData(urlVars:URLVariables):void
- {
- trace("AdminDataLoadingService::processLoadedData() should be overwritten in the extending class.");
- }
- private function dispatchServiceCompleteEvent():void
- {
- var evt:AdminDataServiceUpdateEvent = new AdminDataServiceUpdateEvent(AdminDataServiceUpdateEvent.DATA_LOADING_COMPLETED);
- dispatch(evt);
- }
- }
Add Comment
Please, Sign In to add comment