2010-03-18 13 views
0

NetBeans utilise l'API standard UndoManager pour l'implémentation de la fonctionnalité d'annulation. Mais ni la norme javax.swing.undo.UndoManager ni org.openide.awt.UndoRedo.Manager n'a aucune méthode pour marquer les états comme sauvegardés et vérifier l'état modifié. Néanmoins, si vous changez le fichier et appuyez sur Annuler, le fichier est marqué comme non modifié. Comment font-ils cela? J'ai besoin de la même fonctionnalité pour mes éditeurs (non-texte) si l'application Netbeans RCP.Comment les éditeurs Netbeans savent-ils que le fichier n'est pas modifié après l'annulation?

Répondre

1

J'ai compris cela. Le CloneableEditSupport ajoute UndoableEdit lorsque quelqu'un enregistre le fichier. Cette modification signale lorsque quelqu'un annule l'état sauvegardé ou rétablit l'état enregistré. En outre, il encapsule les modifications suivantes (jusqu'à la première significative) pour intercepter les redos à partir de l'état enregistré et annuler à l'état enregistré.

Cette astuce ne fonctionne que si tous les UndoableEdit que vous générez sont significatifs.