Während der Bearbeitung eines Diagramms können Sie Aktionen rückgängig machen und wiederholen.
Diese Operationen sind in DiagramEditor verfügbar. Sie unterstützen nicht nur alle Standardänderungen, die mit den Bearbeitungsfunktionen angewendet werden können, sondern
auch alle Basiseigenschaftsänderungen, die über das Programm angewendet werden, mit der entsprechenden Registrierung
des undo-Objekts.
Mithilfe angepasster Operationen können auch komplexere Änderungen unterstützt werden.
UndoManager
Dieses Objekt ist über die Methode
getUndoManager verfügbar und verwaltet die Stapel von Aktionen, die rückgängig gemacht und wiederholt
werden können.
Diese Komponente stellt nicht nur eine Basisliste mit Methoden für die Verwaltung dieser Stapel bereit, sondern verwaltet auch
ein vollständiges Dictionary von
GraphElements
mit deren IDs und Ersetzungen, sofern erforderlich (während des Entfernens bei einer undo- und einer nachfolgenden redo-Operation).
Der UndoManager enthält die folgenden Funktionen:getDiagram
: Ruft das Diagramm ab.addAction
: Fügt dem Stapel der undo-Aktionen eine Aktion hinzu (und löscht den redo-Stapel).undoAction
: Entfernt eine Aktion aus dem undo-Stapel, in dem die undo-Operation angewendet und dem redo-Stack hinzugefügt wird.redoAction
: Entfernt eine Aktion aus dem redo-Stapel und wendet die redo-Operation an.getUndoStack
: Ruft eine Kopie des Stapels der undo-Aktionen ab.getRedoStack
: Ruft eine Kopie des Stapels der redo-Aktionen ab.setMaximumStackSize
: Legt die maximale Größe des Stapels fest. Der Wert null bedeutet, dass die Stapelgröße uneingeschränkt ist.getMaximumStackSize
: Ruft die maximale Stapelgröße ab.getRegisteredGfx
: Ruft das registrierte GFX-Objekt ab, das der angegebenen ID entspricht und sucht bei Bedarf den Ersatz.registerGfxReplacement
: Registriert, wenn eine GFX-ID durch eine andere ersetzt wird (wenn ein GFX-Objekt entfernt und ein Ersatz mit einer neuen ID erstellt wird).getRegisteredGfxReplacement
: Ruft den registrierten Ersatz für die angegebene GFX-ID ab und sucht rekursiv nach dem letzten Ersatz. Wenn kein Ersatz registriert ist, wird die angegebene GFX-ID zurückgegeben.getRegisteredParent
: Gibt das übergeordnete Graphenelement für die angegebene ID zurück. Wenn die ID einem Untergraphen entspricht, wird der innere Graph zurückgegeben.
Undo-Aktion
Die Klasse Action ist die Basisklasse, die die undo-Operation enthält.
Sie stellt die Basisschnittstelle für alle undo-Aktionen bereit und hat die folgenden Methoden:
undo
: Wendet die undo-Funktion an.redo
: Wendet die redo-Funktion an.getLabel
: Ruft die Aktionsbezeichnung für die Druckfunktion in der Benutzerschnittstelle ab.getUndoManager
: Ruft denundoManager
ab, der automatisch aktiviert wird, wenn dem undo-Stack eine Aktion hinzugefügt wird.isUndoing
: Gibttrue
zurück, wenn die undo-Methode ausgeführt wird.isRedoing
: Gibttrue
zurück, wenn die redo-Methode ausgeführt wird.
Das folgende Subset von Klassen übernehmen die Einstellungen von
Action
und sind hilfreich für das Anpassen bzw. Erstellen neuer Aktionen.
SimpleAction
Die Klasse SimpleAction ist für einfache undo-Aktionen bestimmt. Sie wird verwendet, um
Basiseigenschaften rückgängig zu machen und zu wiederholen, die durch Zuordnen von Variablen oder Aufrufen einer Methode mit einem einfachen Argument
geändert werden können.
Verwenden Sie die Klasse
SimpleAction
, um angepasste Editiervorgänge rückgängig zu machen.
Die Aktion "move undo" verwendet diese Klasse, um
Verschiebeaktionen mit den folgenden Methoden rückgängig zu machen und zu wiederholen:setOldValue
: Legt den alten Wert fest.setNewValue
: Legt den neuen Wert fest.getOldValue
: Ruft den alten Wert ab und klont dabei den definierten Wert, wenn die Klonfunktion zuvor definiert wurde.getNewValue
: Ruft den neuen Wert ab und klont dabei den definierten Wert, wenn die Klonfunktion zuvor definiert wurde.setModifiedElementId
: Legt das geänderte Objekt fest.getModifiedElementId
: Ruft das geändert Objekt ab.getModifiedElement
: Ruft das geänderte GFX-Element oder bei Bedarf dessen Ersatz ab.setMethodOrProperty
: Legt den zu ändernden Eigenschafts- bzw. Methodennamen fest.setCloneFunction
: Definiert die Klonfunktion so, dass der Wert vor der Durchführung der Änderungsaktion geklont wird.
MultipleAction
Die Klasse MultipleAction gruppiert eine Liste von
UndoActions
.
Sie gruppiert eine Gruppe von Actions
in einem einzigen Komplex und führt alle
hinzugefügten Aktionen während der redo- und undo-Operationen nacheinander aus.
ReparentingAction
Die Klasse ReparentingAction ermöglicht Ihnen, alle Aktionen, bei denen ein neues übergeordnetes Element zugeordnet wird,
rückgängig zu machen und zu wiederholen.
Verwenden Sie diese Klasse in Kombination mit
MultipleAction
, um undo- oder redo-Aktionen
zu erstellen, die die Zuordnung eines neuen übergeordneten Elements beinhalten.UserCustomizedAction
Die Klasse UserCustomizedAction ist die Basisklasse für alle Aktionen, die keinen
DiagramEditor
haben. Diese Klasse
muss jedoch angepasst werden, um das erwartete Verhalten vollständig zu erreichen.
Sie können die Klasse mit DropAction
, ConnectAction
und
ReConnectAction
erweitern.