public void Save() { if (autoCommitChanges) { return; } if (group.Name != groupCopy.Name) { group.Name = groupCopy.Name; } foreach (Stetic.Wrapper.Action actionCopy in groupCopy.Actions) { Stetic.Wrapper.Action action = (Stetic.Wrapper.Action)actionCopyMap [actionCopy]; if (action != null) { action.CopyFrom(actionCopy); } else { action = actionCopy.Clone(); actionCopyMap [actionCopy] = action; group.Actions.Add(action); } } ArrayList todelete = new ArrayList(); foreach (Stetic.Wrapper.Action actionCopy in actionCopyMap.Keys) { if (!groupCopy.Actions.Contains(actionCopy)) { todelete.Add(actionCopy); } } foreach (Stetic.Wrapper.Action actionCopy in todelete) { Stetic.Wrapper.Action action = (Stetic.Wrapper.Action)actionCopyMap [actionCopy]; group.Actions.Remove(action); actionCopyMap.Remove(actionCopy); } Modified = false; }
void Load(Stetic.Wrapper.ActionGroup group) { if (autoCommitChanges) { groupCopy = group; } else { actionCopyMap.Clear(); groupCopy = new Stetic.Wrapper.ActionGroup(); groupCopy.Name = group.Name; foreach (Stetic.Wrapper.Action action in group.Actions) { Stetic.Wrapper.Action dupaction = action.Clone(); groupCopy.Actions.Add(dupaction); actionCopyMap [dupaction] = action; } groupCopy.SignalAdded += new Stetic.SignalEventHandler(OnSignalAdded); groupCopy.SignalChanged += new Stetic.SignalChangedEventHandler(OnSignalChanged); } }