示例#1
0
 public void Do(DataGridViewUndoRedoCommand command)
 {
     lock (this)
     {
         this.undo.AddFirst(command);
         this.CanUndo = this.undo.Count > 0;
         this.redo.Clear();
         this.CanRedo = this.redo.Count > 0;
         while (MaxTimes > 0 && undo.Count > MaxTimes)
         {
             undo.RemoveLast();
         }
     }
 }
示例#2
0
        public void DoAddRows(List <DataGridViewRow> rows)
        {
            if (rows == null || rows.Count == 0)
            {
                return;
            }
            var cmd = new DataGridViewUndoRedoCommand()
            {
                CommandType = DataGridViewUndoRedoCommandType.AddRow,
                Rows        = rows
            };

            Do(cmd);
        }
示例#3
0
        public void DoAddColumns(List <GridOilColumnGroup> columns)
        {
            if (columns == null || columns.Count == 0)
            {
                return;
            }
            var cmd = new DataGridViewUndoRedoCommand()
            {
                CommandType = DataGridViewUndoRedoCommandType.AddColumn,
                NewColumns  = columns
            };

            Do(cmd);
        }
示例#4
0
        public void DoChangeColumns(List <GridOilColumnGroup> oldColumns, List <GridOilColumnGroup> newColumns, List <DataGridViewUndoRedoValue> values)
        {
            if (oldColumns == null || oldColumns.Count == 0 || newColumns == null || newColumns.Count == 0)
            {
                return;
            }
            var cmd = new DataGridViewUndoRedoCommand()
            {
                CommandType = DataGridViewUndoRedoCommandType.ChangeColumn,
                Values      = values,
                OldColumns  = oldColumns,
                NewColumns  = newColumns
            };

            Do(cmd);
        }
示例#5
0
        public void DoChangeColumn(GridOilColumnGroup oldColumn, GridOilColumnGroup newColumn, List <DataGridViewUndoRedoValue> values)
        {
            if (oldColumn == null || newColumn == null)
            {
                return;
            }
            var cmd = new DataGridViewUndoRedoCommand()
            {
                CommandType = DataGridViewUndoRedoCommandType.ChangeColumn,
                Values      = values,
                NewColumns  = new List <GridOilColumnGroup>(new GridOilColumnGroup[] { newColumn }),
                OldColumns  = new List <GridOilColumnGroup>(new GridOilColumnGroup[] { oldColumn })
            };

            Do(cmd);
        }
示例#6
0
 public void Redo()
 {
     lock (this)
     {
         if (this.redo.Count >= 1)
         {
             DataGridViewUndoRedoCommand command = this.redo.First();
             redo.RemoveFirst();
             this.CanRedo = this.redo.Count > 0;
             command.Redo(this);
             this.undo.AddFirst(command);
             this.CanUndo = this.undo.Count > 0;
             while (MaxTimes > 0 && undo.Count > MaxTimes)
             {
                 undo.RemoveLast();
             }
         }
     }
 }
示例#7
0
        public void DoRemoveRows(List <DataGridViewRow> rows, List <DataGridViewUndoRedoValue> values)
        {
            if (rows == null || rows.Count == 0)
            {
                return;
            }
            if (values != null)
            {
                values = values.Where(o => o.IsVaild).ToList();
            }
            var cmd = new DataGridViewUndoRedoCommand()
            {
                CommandType = DataGridViewUndoRedoCommandType.RemoveRow,
                Rows        = rows,
                Values      = values
            };

            Do(cmd);
        }
示例#8
0
        public void DoRemoveColumns(List <GridOilColumnGroup> columns, List <DataGridViewUndoRedoValue> values)
        {
            if (columns == null || columns.Count == 0)
            {
                return;
            }
            if (values != null)
            {
                values = values.Where(o => o.IsVaild).ToList();
            }
            var cmd = new DataGridViewUndoRedoCommand()
            {
                CommandType = DataGridViewUndoRedoCommandType.RemoveColumn,
                OldColumns  = columns,
                Values      = values
            };

            Do(cmd);
        }
示例#9
0
        public void DoChangeValues(List <DataGridViewUndoRedoValue> values)
        {
            if (values == null || values.Count == 0)
            {
                return;
            }
            values = values.Where(o => o.IsVaild).ToList();
            if (values.Count == 0)
            {
                return;
            }
            var cmd = new DataGridViewUndoRedoCommand()
            {
                CommandType = DataGridViewUndoRedoCommandType.ChangeValue,
                Values      = values
            };

            Do(cmd);
        }