CPF/CPF.ReoGrid/Actions/CutRangeAction.cs
2024-06-24 10:15:59 +08:00

41 lines
1.1 KiB
C#

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;
}
}