用户有时候想要将一组撤销和重做来作为一个单一的操作,提供了CompositeCmd类来帮助用户实现这样的需求。CompositeCmd对象作为其他派生命令对象的一个容器,当撤销或是重做包含在一个复合命令中时,所有的子命令就将会表现出撤销或是重做。
要添加一个命令老调用AddSubCmd方法,调用执行方法来执行包含在复合中的所有的子命令,子命令会被按照原来的被添加到容器中的顺序执行或是重做,并会被以相反的顺序被撤销。
通常FlowChart.NET会隐式的产生命令对象以便于用户响应或是方法调用,并且在历史队列中自动的记录。你不能直接的访问这些命令,以及通过AddSubCmd添加它们到一个复合中。
// Implicitly created undo records will be saved here
CompositeCmd composite = diagram.UndoManager.StartComposite("Create group");
// Call methods that create undo records
ShapeNode node1 = diagram.Factory.CreateShapeNode(0, 0, 30, 30);
ShapeNode node2 = diagram.Factory.CreateShapeNode (0, 0, 15, 15);
Group g = diagram.Factory.CreateGroup(node1);
g.AttachToCorner(node2, 0);
// This goes to the active composite too
ChangeItemCmd change = new ChangeItemCmd(node2, "");
node2.Locked = true;
change.Execute();
// Save the active composite in history
composite.Execute();
阅读(1902) | 评论(0) | 转发(0) |