package com.imt.intimamedia.commands.localization { import com.adobe.cairngorm.control.CairngormEvent; import com.imt.flex.cairngormExtended.command.SuperCommand; import com.imt.intimamedia.business.LocalizationDelegate; import com.imt.intimamedia.model.ApplicationModelLocator; import com.imt.intimamedia.views.common.ImtToaster; import com.imt.intimamedia.vo.LocalizationVo; import mx.resources.ResourceManager; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; /** * Commande de localisation */ public class LocalizationCommand extends SuperCommand { [Bindable] private var _model : ApplicationModelLocator = ApplicationModelLocator.getInstance(); /** * Excecution de la commande * * @param event Evénement de type CairngormEvent * @return void */ override public function execute( event : CairngormEvent ) : void { super.execute( event ); var delegate : LocalizationDelegate = new LocalizationDelegate( this ); delegate.locateUser(); } /** * Résultat de la commande * * @param result Un objet * @return void */ override public function result( result : Object ) : void { super.result( result ); var resultEvent : ResultEvent = ResultEvent( result ); _model.localizationForConnectedUser = resultEvent.result as LocalizationVo; _model.sharedObject.data.country = _model.localizationForConnectedUser.countryCode; _model.sharedObject.data.continent = _model.localizationForConnectedUser.continentCode; _model.sharedObject.data.ip = _model.localizationForConnectedUser.ip; _model.sharedObject.data.date = _model.localizationForConnectedUser.date; _model.sharedObject.data.countryName = _model.localizationForConnectedUser.countryName; _model.sharedObject.data.region = _model.localizationForConnectedUser.region; _model.sharedObject.data.city = _model.localizationForConnectedUser.city; _model.sharedObject.flush(); } /** * Résultat de la commande * * @param result Un objet * @return void */ override public function fault( fault : Object ) : void { super.fault( fault ); if (( fault as FaultEvent ).fault.faultString == ApplicationModelLocator.getInstance().ERROR_SESSION ) { ApplicationModelLocator.displaySessionExpired( fault as FaultEvent ); } else { var toastMessage : ImtToaster = new ImtToaster(); toastMessage.titleMessage = ResourceManager.getInstance().getString('labels', 'error.title'); toastMessage.message = ResourceManager.getInstance().getString('labels', 'error.localization') + " (" + ResourceManager.getInstance().getString('errors', ( fault as FaultEvent ).fault.faultString) +")"; toastMessage.level = ImtToaster.ERROR; _model.toaster.toast( toastMessage ); } } } }