Anleitung zum Rückgängigmachen/Wiederholen und der Behandlung von UMLData-Transaktionen

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  UModel Referenz für Programmierer > Die UModel API > Übersicht > Anleitungen >

Anleitung zum Rückgängigmachen/Wiederholen und der Behandlung von UMLData-Transaktionen

Wenn Sie die UML-Datenstruktur über die UModel API ändern, müssen Sie sich nicht um das Rückgängigmachen / Wiederholen von Aktionen oder Transaktionen kümmern.

 

Der folgende Code nimmt drei Änderungen vor:

 

      public void ChangeClass( IUMLClass iClass )
      {
          iClass.SetName("NewName");
          iClass.Visibility = ENUMUMLVisibilityKind.eVisibility_Public;
          iClass.IsAbstract = true;
      }

 

Für jede Änderung wird ein neuer Rückgängig-Schritt erstellt. Anders ausgedrückt: Der Benutzer muss in UModel drei Mal auf die Schaltfläche "Rückgängig" klicken, um diese drei Änderungen rückgängig zu machen.

 

Dies ist nicht immer das gewünschte Verhalten, daher unterstützt die UModel API das "Transaction-Handling", sodass mehrere Änderungen in einem einzigen Schritt ausgeführt werden können.

 

IDocument hat die Aufgabe zu definieren, wann eine Gruppe von Änderungen beginnt ( "BeginModification" ) und wann sie endet ( "EndModification" ):

 

      public void ChangeClass(IUMLClass iClass, IDocument iDoc)
      {
          try
          {
              // make all modifications within one UndoStep; start modification here
              if (!iDoc.BeginModification())
                  return;
 
              iClass.SetName("NewName");
              iClass.Visibility = ENUMUMLVisibilityKind.eVisibility_Public;
              iClass.IsAbstract = true;
 
              // do not forget to end modification and finish UndoStep
              iDoc.EndModification();
          }
          catch (System.Exception)
          {
              // rollback made changes
              iDoc.AbortModification();
 
              // add error handling
          }
      }

 

Diese Art von Transaktionsbehandlung kann nur bei der Änderung von UML-Daten verwendet werden.

Bei anderen Funktionen, wie z.B. "Modell anhand von Code synchronisieren" wird ohnedies ein einziger Rückgängig-Schritt erstellt.


© 2019 Altova GmbH