Exemple #1
0
        public void Reset()
        {
            UndoCommands.Clear();
            RedoCommands.Clear();

            UpdateHistory();
        }
Exemple #2
0
 internal void UndoRedoStacksChanged()
 {
     UndoCommands.Refresh();
     OnPropertyChanged(nameof(UndoCommands));
     RedoCommands.Refresh();
     OnPropertyChanged(nameof(RedoCommands));
 }
Exemple #3
0
 private void Overflow()
 {
     if (UndoCommands.Count <= MaxCommand)
     {
         return;
     }
     UndoCommands.RemoveLast();
 }
Exemple #4
0
 public static void Redo()
 {
     if (RedoCommands.Count > 0)
     {
         ICommand temp = RedoCommands.Peek();
         temp.Execute();
         UndoCommands.Push(temp);
         RedoCommands.Pop();
     }
 }
Exemple #5
0
 public static void Undo()
 {
     if (UndoCommands.Count > 0)
     {
         ICommand temp = UndoCommands.Peek();
         temp.Undo();
         RedoCommands.Push(temp);
         UndoCommands.Pop();
     }
 }
Exemple #6
0
        private void Add()
        {
            if (m_currentCommand == null)
            {
                return;
            }
            RedoCommands.Clear();
            UndoCommands.AddFirst(m_currentCommand.Clone());

            Overflow();
            UpdateHistory();
        }
Exemple #7
0
        public ICommand Redo()
        {
            if (RedoCommands.Count == 0)
            {
                return(null);
            }

            ICommand command = RedoCommands.Pop();

            UndoCommands.AddFirst(command);

            command.Redo();

            UpdateHistory();
            return(command);
        }
Exemple #8
0
        public ICommand Undo()
        {
            if (UndoCommands.Count == 0)
            {
                return(null);
            }

            ICommand command = UndoCommands.First.Value;

            command.Undo();

            RedoCommands.Push(command);
            UndoCommands.RemoveFirst();

            UpdateHistory();

            return(command);
        }