Ejemplo n.º 1
0
        public void Undo()
        {
            if (undoStack.Count() <= 0)
            {
                throw new InvalidOperationException();
            }
            IUndoRedoCommand command = undoStack.Pop();

            redoStack.Push(command);
            command.Undo();
        }
Ejemplo n.º 2
0
 protected void UndoCommandExecute()
 {
     if (CurrentTabItem == null || !DicUndoCommands.Keys.Contains(CurrentTabItem))
     {
         return;
     }
     if (DicUndoCommands[CurrentTabItem].Count > 0)
     {
         IUndoRedoCommand command = DicUndoCommands[CurrentTabItem].Pop();
         command.Undo();
         DicRedoCommands[CurrentTabItem].Push(command);
     }
 }
Ejemplo n.º 3
0
 public void Undo(int undoCount = 1)
 {
     for (int i = 1; i <= undoCount; i++)
     {
         if (undoBuffer.Count != 0)
         {
             IUndoRedoCommand command = undoBuffer.Pop();
             command.Undo();
             redoBuffer.Push(command);
         }
     }
     Changed?.Invoke(this, null);
 }
Ejemplo n.º 4
0
        public void Undo()
        {
            IUndoRedoCommand cmd = _undoRedoStack[--_pointer];

            if (cmd.CheckExecutionContext()) // if command is no longer valid dispose it
            {
                cmd.Undo();
            }
            else
            {
                _undoRedoStack.RemoveAt(_pointer);
            }

            _onUndoAction?.Invoke();
            _onRedoAction?.Invoke();
        }