2012-03-28 15 views
1

Ich verwende den UndoRedo.Manager, um die Rückgängig/Wiederherstellen-Funktion in einer Netbeans RCP-Anwendung zu implementieren. Der UndoableEditListener kann zu jedem Dokument hinzugefügt werden, das seine Verwendung auf textbezogene Felder beschränkt. Weiß jemand, wie ich einen solchen Listener zu Elementen ohne ein Dokument hinzufügen kann, wie eine JCheckBox?UndoRedo.Manager und JCheckBox

Antwort

1

Erstellen Sie einfach benutzerdefinierte CompoundEdits oder sogar separate Bearbeitungen. Siehe zum Beispiel die Editierungen in einem verschmelzen http://java-sl.com/tip_merge_undo_edits.html

Ich denke, alles, was Sie brauchen, ist eigene Ereignisse zu halten stack und implementieren benutzerdefinierte rückgängig machendeEdits, die nicht ändern Modell (Dokument), sondern den Zustand ändern. Mit anderen Worten, Sie benötigen ein komplizierteres Modell, um sowohl den Status des Kontrollkästchens als auch das Dokument in einem zu behalten. Alle komplizierten Modelländerungen (Statusänderung oder Dokumentierungsänderung) sollten durch die benutzerdefinierte Klasse "UndoableEdit" dargestellt werden. Die Klasseninstanz könnte Wrapper für das Docuemnt-Bearbeitungsereignis oder nur für ein benutzerdefiniertes Ereignis sein.

+0

Ich habe auf eine Out-of-the-Box-Lösung gehofft, aber es scheint, dass ich es auf Ihre Weise tun muss. Atleast, es ist nicht wirklich kompliziert. Vielen Dank. –