¿Cómo saben que Netbeans Editores archivo no se modifica después de deshacer?
Pregunta
Netbeans utiliza API UndoManager
estándar para la implementación de la funcionalidad de deshacer. Pero ni javax.swing.undo.UndoManager
norma ni org.openide.awt.UndoRedo.Manager
no tiene un método para marcar estados como salvado y comprobar el estado modificado. No obstante, si se cambia el archivo y pulse deshacer, el archivo está marcado como sin modificar. ¿Cómo lo hacen? Necesito la misma funcionalidad para mi (no textual) editores si la aplicación Netbeans RCP.
Solución
Me di cuenta de esto. El CloneableEditSupport
añade UndoableEdit
cuando alguien guarda el archivo. Esta edición de señales cuando alguien Undos desde el estado guardado o rehacer el estado guardado. También se envuelve próximas ediciones (hasta el primero significativo) para interceptar rehacer desde el estado guardado y deshacer al estado guardado.
Este truco sólo funciona si todos UndoableEdit
s que generan son significativos.