java Netbeans编辑器如何知道文件在撤消后不会被修改?
Netbeans使用标准的UndoManager
API来实现撤销功能。但无论是标准javax.swing.undo.UndoManager
还是org.openide.awt.UndoRedo.Manager
都没有任何方法将状态标记为已保存并检查修改状态。尽管如此,如果更改文件并按“撤消”,该文件将被标记为未修改。他们是怎么做到的?如果使用Netbeans RCP应用程序,我需要为我的(非文本)编辑器提供相同的功能
你可以在下面搜索框中键入要查询的问题!
Netbeans使用标准的UndoManager
API来实现撤销功能。但无论是标准javax.swing.undo.UndoManager
还是org.openide.awt.UndoRedo.Manager
都没有任何方法将状态标记为已保存并检查修改状态。尽管如此,如果更改文件并按“撤消”,该文件将被标记为未修改。他们是怎么做到的?如果使用Netbeans RCP应用程序,我需要为我的(非文本)编辑器提供相同的功能
# 1 楼答案
我弄明白了。当有人保存文件时,
CloneableEditSupport
添加UndoableEdit
。当有人从保存状态撤消或重做到保存状态时,此编辑会发出信号。此外,它还包装下一次编辑(直到第一次重要编辑),以拦截保存状态的重做,并撤销保存状态的重做只有在生成的所有
UndoableEdit
都很重要时,这个技巧才有效