/* SaveConfigColorsCommand.as */ package gov.va.med.edp.command.config { import com.adobe.cairngorm.commands.ICommand; import com.adobe.cairngorm.control.CairngormEvent; import gov.va.med.edp.business.config.SaveConfigColorsDelegate; import gov.va.med.edp.command.AbstractResponderCommand; import gov.va.med.edp.model.TrackingModelLocator; import gov.va.med.edp.vo.ColorMapVO; import gov.va.med.edp.vo.ColorMatchVO; import gov.va.med.edp.widget.InfoDialog; import gov.va.med.edp.util.BoardTools; import mx.rpc.IResponder; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; public class SaveConfigColorsCommand extends AbstractResponderCommand implements ICommand, IResponder { private var model:TrackingModelLocator = TrackingModelLocator.getInstance(); public function execute(event:CairngormEvent):void { var delegate: SaveConfigColorsDelegate = new SaveConfigColorsDelegate(this); var xml: XML = ; for each (var map: ColorMapVO in model.config.colorMaps) { var colors: XML = ; colors.@id = map.id; colors.@type = map.type; for each (var match: ColorMatchVO in map.matches) { var node: XML = ; node.@att = match.attribute; node.@val = match.value; node.@clr = match.color.toString(); colors.appendChild(node); } xml.appendChild(colors); } model.config.colorLoaded = false; delegate.saveConfigColors(model.logArea, xml, model.config.colorToken); } public override function result(data:Object):void { var xml:XML = ResultEvent(data).result as XML; if ((xml.save.@status == "ok") || (xml.save.@status == "collide")) { BoardTools.applyColorSpec(xml.colorSpec.colors, model.config.colorMaps); model.config.colorToken = xml.colorToken; model.config.colorMods = false; model.config.colorLoaded = true; if (xml.save.@status == "ok") { InfoDialog.show("New board colors saved."); } else { InfoDialog.show("Save failed: " + xml.save); } } if (xml.save.@status == "fail") { InfoDialog.show("Save failed: " + xml.save); } } protected override function getFaultMessage(faultEvent:FaultEvent):String { return "Error saving configuration for colors: " + super.getFaultMessage(faultEvent); } } }