Undo-Management

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 den undoManager ab, der automatisch aktiviert wird, wenn dem undo-Stack eine Aktion hinzugefügt wird.
  • isUndoing: Gibt true zurück, wenn die undo-Methode ausgeführt wird.
  • isRedoing: Gibt true 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.