如何将多个步骤合并为一个撤消/重做?

How to merge multiple steps into one undo / redo?

我用mxGraph做一个编辑器。当用户点击一次按钮时,我需要在图中执行很多步骤(比如移动一些节点的位置,添加或删除一些节点,修改一些节点的属性)。

一般我可以用mxModel.setValue ()mxGraph.removeCells ()完成一次操作,但用户需要多次按ctrl + z才能恢复图形的原始状态。

如何将任意数量的操作合并为一个操作,并通过一次撤销/重做恢复整个图的状态?

我不知道这是否是您要找的,但是如果您在一个 model.beginUpdate() 和一个 model.endUpdate() 之间所做的一切都属于同一个 "undo" 行动。通过调用 mxUndoManager.undo 一旦你应该能够一次撤消所有这些......