Netbeans编辑如何知道撤消后文件未被修改?

时间:2010-03-18 12:48:28

标签: java netbeans rcp undo-redo

Netbeans使用标准UndoManager API来实现撤消功能。但标准javax.swing.undo.UndoManagerorg.openide.awt.UndoRedo.Manager都没有任何方法可以将状态标记为已保存并检查已修改状态。但是,如果您更改文件并按下撤消,则文件将标记为未修改。他们是怎么做到的?如果是Netbeans RCP应用程序,我需要为我的(非文本)编辑器提供相同的功能。

1 个答案:

答案 0 :(得分:1)

我想出来了。有人保存文件时,CloneableEditSupport会添加UndoableEdit。当有人从保存状态撤消或重做到保存状态时,此编辑会发出信号。它还包含下一个编辑(直到第一个重要的编辑)来拦截从已保存状态和撤消到已保存状态的重做。

只有当您生成的所有UndoableEdit都很重要时,此技巧才有效。