source: EDIS/tags/ed/tracking-ui-core/src/main/flex/gov/va/med/edp/command/SaveLogEntryCommand.as@ 1240

Last change on this file since 1240 was 1240, checked in by George Lilly, 13 years ago

new version from the VA

File size: 2.3 KB
Line 
1/* SaveLogEntryCommand.as */
2
3package gov.va.med.edp.command
4{
5 import com.adobe.cairngorm.commands.ICommand;
6 import com.adobe.cairngorm.control.CairngormEvent;
7
8 import gov.va.med.edp.business.SaveLogEntryDelegate;
9 import gov.va.med.edp.control.TrackingEvent;
10 import gov.va.med.edp.model.TrackingModelLocator;
11 import gov.va.med.edp.widget.InfoDialog;
12
13 import mx.rpc.IResponder;
14 import mx.rpc.events.FaultEvent;
15 import mx.rpc.events.ResultEvent;
16
17 public class SaveLogEntryCommand extends AbstractResponderCommand implements ICommand, IResponder
18 {
19 private var model:TrackingModelLocator = TrackingModelLocator.getInstance();
20
21 public function execute(event:CairngormEvent):void
22 {
23 var delegate:SaveLogEntryDelegate = new SaveLogEntryDelegate(this);
24 if (model.logEdit.dirty) {
25 model.logEdit.dirty = false;
26 delegate.saveLogEntry(model.logEdit.entry);
27 }
28 }
29
30 public override function result(data:Object):void
31 {
32 var xml:XML = ResultEvent(data).result as XML;
33
34 if (xml.upd.@status == "fail") {
35 var msg: String = xml.upd.@msg;
36 InfoDialog.show("Unable to save, " + msg);
37 model.logEdit.dirty = true;
38 model.synchToLastEntry();
39 if (msg.indexOf("Delay Reason") > -1) {
40 model.logEdit.entry.requireDelay = true;
41 }
42 } else if (xml.upd.@status == "collision") {
43 InfoDialog.show(xml.upd, "Updated Entry");
44 model.logEdit.dirty = true;
45 model.synchToLastEntry();
46 model.logEdit.entry.loadTS = xml.upd.@loadTS;
47 } else {
48 model.logEdit.resetEntry();
49 model.logEdit.message = "Entry saved.";
50 model.logEntryViewState = TrackingModelLocator.VIEW_EDIT_MESSAGE;
51 model.logEntryList.selectedIndex = -1;
52 model.logEntryList.selectedID = 0;
53
54 //force the binding to fire...
55 model.matchingClosedVisitsIndex = 0;
56 model.matchingClosedVisitsIndex = -1;
57
58 new TrackingEvent(TrackingEvent.EVENT_REFRESH_LOG_SELECTOR).dispatch();
59 }
60 }
61 protected override function getFaultMessage(faultEvent:FaultEvent):String {
62 return "Saving log entry failed: " + super.getFaultMessage(faultEvent);
63 }
64
65 public override function fault(info:Object):void
66 {
67 model.logEdit.dirty = true;
68 model.synchToLastEntry();
69 super.fault(info);
70 }
71 }
72}
Note: See TracBrowser for help on using the repository browser.