Skip to content

Instantly share code, notes, and snippets.

@Stray
Created October 18, 2010 22:52
Show Gist options
  • Save Stray/633238 to your computer and use it in GitHub Desktop.
Save Stray/633238 to your computer and use it in GitHub Desktop.
public class WarnIfCurrentEditDataIsChangedCommand extends Command
{
[Inject]
public var getEditedVOSignalResponsePair:GetEditedVOSignalResponsePair;
[Inject]
public var editingModel:IEditingModel;
[Inject]
public var dataChangeEvent:AdminDataEvent;
override public function execute():void
{
getEditedVOSignalResponsePair.addToResponse(compareData);
getEditedVOSignalResponsePair.dispatchRequest();
}
private function compareData(editedVO:AdminDataVO):void
{
var currentStoredVO:AdminDataVO = editingModel.itemBeingEdited;
if(ObjectUtil.compare(currentStoredVO, editedVO) == 0)
{
editingModel.itemBeingEdited = dataChangeEvent.adminDataVO;
return;
}
else
{
// create the warning dialog with handlers
}
}
}
public class GetEditedVOSignalResponsePair extends SyncSignalResponsePair {
public function GetEditedVOSignalResponsePair() {
super([], [AdminDataVO]);
}
}
// we have to create the Signal so that the mediator can register the handler even before it is injected
// this is for RL 1.0 - might not be required in later versions
var getEditedVOSignalResponsePair:GetEditedVOSignalResponsePair = new GetEditedVOSignalResponsePair();
injector.mapValue(GetEditedVOSignalResponsePair, getEditedVOSignalResponsePair);
[Inject]
public var getEditedVOSignalResponsePair:GetEditedVOSignalResponsePair;
override public function onRegister():void
{
getEditedVOSignalResponsePair.addToRequest(respondWithVO);
}
private function respondWithVO(responseSignal:Signal):void
{
var accountVO:AccountDataVO = view.populateVO();
responseSignal.dispatch(accountVO);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment