Как редакторы Netbeans знают, что файл не изменяется после отмены? - PullRequest
0 голосов
/ 18 марта 2010

Netbeans использует стандартный UndoManager API для реализации функции отмены. Но ни у стандартных javax.swing.undo.UndoManager, ни у org.openide.awt.UndoRedo.Manager нет способа пометить состояния как сохраненные и проверить измененное состояние. Тем не менее, если вы измените файл и нажмете «Отмена», файл будет помечен как неизмененный. Как они это делают? Мне нужна та же функциональность для моих (не текстовых) редакторов, если приложение Netbeans RCP.

1 Ответ

1 голос
/ 22 марта 2010

Я понял это. CloneableEditSupport добавляет UndoableEdit, когда кто-то сохраняет файл. Это редактирование сигнализирует, когда кто-то отменяет выполнение из сохраненного состояния или восстанавливает до сохраненного состояния. Также он переносит следующие правки (вплоть до первого значимого) для перехвата повторов из сохраненного состояния и отмены в сохраненное состояние.

Этот трюк работает, только если все UndoableEdit сгенерированные вами значимы.

...