CPF/CPF.ReoGrid/Actions/WorksheetReusableActionGroup.cs

75 lines
1.5 KiB
C#
Raw Normal View History

2024-06-24 10:15:59 +08:00
using System;
using System.Collections.Generic;
namespace CPF.ReoGrid.Actions
{
public class WorksheetReusableActionGroup : WorksheetReusableAction
{
public List<WorksheetReusableAction> Actions
{
get
{
return this.actions;
}
set
{
this.actions = value;
}
}
public WorksheetReusableActionGroup(RangePosition range) : base(range)
{
this.actions = new List<WorksheetReusableAction>();
}
public WorksheetReusableActionGroup(RangePosition range, List<WorksheetReusableAction> actions) : base(range)
{
this.actions = actions;
}
public override void Do()
{
bool flag = this.first;
if (flag)
{
for (int i = 0; i < this.actions.Count; i++)
{
this.actions[i].Worksheet = base.Worksheet;
}
this.first = false;
}
for (int j = 0; j < this.actions.Count; j++)
{
this.actions[j].Do();
}
}
public override void Undo()
{
for (int i = this.actions.Count - 1; i >= 0; i--)
{
this.actions[i].Undo();
}
}
public override string GetName()
{
return "Multi-Aciton[" + this.actions.Count.ToString() + "]";
}
public override WorksheetReusableAction Clone(RangePosition range)
{
List<WorksheetReusableAction> list = new List<WorksheetReusableAction>();
foreach (WorksheetReusableAction worksheetReusableAction in this.actions)
{
list.Add(worksheetReusableAction.Clone(range));
}
return new WorksheetReusableActionGroup(range, list);
}
private List<WorksheetReusableAction> actions;
private bool first = true;
}
}