private void SignalListChanged(object sender, ListChangedEventArgs e) { // this hook is called AFTER midification of this.m_signals // here only create Command to keep Command trace uptodate if (GenerateCommandsForChanges) { switch (e.ListChangedType) { case ListChangedType.ItemAdded: { AddSignal addCmd = new AddSignal(m_signals[e.NewIndex]); // no executtion, only update trace addCmd.Execute = false; Commands.CommandExecuter.Instance.Execute(addCmd); break; } case ListChangedType.ItemChanged: { ModifiySignal modCmd = new ModifiySignal(m_signals[e.NewIndex]); modCmd.CurrentSignalName = m_signalNamesPriorToModification[e.NewIndex]; // no executtion, only update trace modCmd.Execute = false; Commands.CommandExecuter.Instance.Execute(modCmd); break; } case ListChangedType.ItemDeleted: { DeleteSignal delCmd = new DeleteSignal(); delCmd.SignalName = m_signalNamesPriorToModification[e.NewIndex]; // no execution, only update trace delCmd.Execute = false; Commands.CommandExecuter.Instance.Execute(delCmd); break; } default: { break; } } } CopySignalList(); }
private void ProcessInput(InputType type) { switch (type) { case InputType.Clear: Clear(); break; case InputType.Delete: DeleteSignal.Dispatch(); break; case InputType.Load: LoadSignal.Dispatch(); break; case InputType.Save: Save(); break; } }