Example #1
0
        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);
        }
Example #2
0
        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;
            }
        }