Come Netbeans editori sanno che il file non viene modificato dopo l'annullamento?
Domanda
Netbeans utilizza API UndoManager
standard per la realizzazione di funzionalità di undo. Ma né javax.swing.undo.UndoManager
di serie né org.openide.awt.UndoRedo.Manager
non ha alcun metodo per contrassegnare gli stati come salvato e verificare lo stato modificato. Tuttavia, se si modifica il file e premere annullare, il file è contrassegnato come non modificato. Come hanno fatto? Ho bisogno la stessa funzionalità per la mia (non di testo) i redattori se l'applicazione Netbeans RCP.
Soluzione
ho capito questo fuori. Il CloneableEditSupport
aggiunge UndoableEdit
quando qualcuno salva il file. Questa modifica segnali quando qualcuno annullamenti dallo stato salvato o redos allo stato salvato. Inoltre avvolge prossimi modifiche (fino al primo significativo) per intercettare redos dallo stato salvato e annullamenti per lo stato salvato.
Questo trucco funziona solo se tutti i UndoableEdit
s generate sono significativi.