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