using System; using System.Diagnostics; namespace CPF.ReoGrid.Actions { internal class CutRangeAction : WorksheetReusableAction { public CutRangeAction(RangePosition range, PartialGrid data) : base(range) { this.backupData = data; } public override void Do() { this.backupData = base.Worksheet.GetPartialGrid(base.Range, PartialGridCopyFlag.All, ExPartialGridCopyFlag.BorderOutsideOwner, false); Debug.Assert(this.backupData != null); base.Worksheet.DeleteRangeData(base.Range, true); base.Worksheet.RemoveRangeStyles(base.Range, PlainStyleFlag.All); base.Worksheet.RemoveRangeBorders(base.Range, BorderPositions.All); } public override void Undo() { Debug.Assert(this.backupData != null); base.Worksheet.SetPartialGrid(base.Range, this.backupData, PartialGridCopyFlag.All, ExPartialGridCopyFlag.BorderOutsideOwner); } public override string GetName() { return "Cut Range"; } public override WorksheetReusableAction Clone(RangePosition range) { return new CutRangeAction(range, this.backupData); } private PartialGrid backupData; } }