internal override OperationResult UndoOperation() { switch (Action) { case EJunctionPointAction.RemovePoint: if (PointIndex == 0 || PointIndex == ViewHelperPointCollection.Count - 1) { return(OperationResult.Failed); } ViewHelperPointCollection.Insert(PointIndex, new rPoint(removedPoint)); break; case EJunctionPointAction.AddPoint: if (PointIndex == 0 || PointIndex == ViewHelperPointCollection.Count) { return(OperationResult.Failed); } ViewHelperPointCollection.RemoveAt(PointIndex); break; case EJunctionPointAction.MovePoints: foreach (KeyValuePair <ObservablePointCollection, List <PointMoveData> > keyValuePair in PointMoveDataCollection) { foreach (PointMoveData pointMoveData in keyValuePair.Value) { keyValuePair.Key[pointMoveData.Index] = pointMoveData.OldPosition; } keyValuePair.Key.PointsChanged(); } break; } return(OperationResult.OK); }
internal override void CommandOperation() { switch (Action) { case EJunctionPointAction.AddPoint: ViewHelperPointCollection.Insert(PointIndex, new rPoint(NewPoint)); break; case EJunctionPointAction.RemovePoint: removedPoint = ViewHelperPointCollection[PointIndex]; ViewHelperPointCollection.RemoveAt(PointIndex); break; case EJunctionPointAction.MovePoints: { int count = 0; foreach (KeyValuePair <ObservablePointCollection, List <PointMoveData> > keyValuePair in PointMoveDataCollection) { foreach (PointMoveData pointMoveData in keyValuePair.Value) { keyValuePair.Key[pointMoveData.Index] = pointMoveData.NewPosition; count++; } keyValuePair.Key.PointsChanged(); } this.Description += String.Format(CommandDescription.MOVED_POINTS, count); } break; } }