Example #1
0
        private void Add()
        {
            if (m_currentCommand == null)
            {
                return;
            }
            RedoCommands.Clear();
            UndoCommands.AddFirst(m_currentCommand.Clone());

            Overflow();
            UpdateHistory();
        }
Example #2
0
        public void ExcuteCommand(ICommand command, params object[] args)
        {
            if(!command.Excute(args)) return;
            reverseStack.Clear();

            if (command is IBackableCommand)
            {
                undoStack.Push((ICommand)command.Clone());
            }
            else
            {
                undoStack.Clear();
            }

            UndoStateChanged(undoStack.Count > 0);
        }
Example #3
0
        public void ExcuteCommand(ICommand command, params object[] args)
        {
            if (!command.Excute(args))
            {
                return;
            }
            reverseStack.Clear();

            if (command is IBackableCommand)
            {
                undoStack.Push((ICommand)command.Clone());
            }
            else
            {
                undoStack.Clear();
            }

            UndoStateChanged(undoStack.Count > 0);
        }
Example #4
0
        public static IEnumerable <ICommand> Split(this ICommand command)
        {
            var results = new List <ICommand>();

            var paramsSplited = command.Parameters.Split(',');

            var setting = new Newtonsoft.Json.JsonSerializerSettings()
            {
                TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All,
            };

            foreach (var p in paramsSplited)
            {
                var newCommand = command.Clone();
                newCommand.Parameters = p.Trim();
                results.Add(newCommand);
            }

            return(results);
        }