Erstellen und Bearbeiten eines Makros

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

Startseite >  UModel Referenz für Programmierer > Skripterstellung > Makros >

Erstellen und Bearbeiten eines Makros

Mit Hilfe der folgenden Operationen können Sie ein neues Makro erstellen und ein vorhandenes bearbeiten.

 

 

Erstellen eines neuen Makros

Klicken Sie mit der rechten Maustaste in der Skripting-Projektstruktur auf den Ordner "Macro" und wählen Sie im Kontextmenü den Befehl Makro hinzufügen. (Der Befehl Makro hinzufügen kann auch im Kontextmenü jedes Elements in der Skripting-Projektstruktur ausgewählt werden.) Klicken Sie alternativ dazu in der Symbolleiste der Skripting-Projektstruktur auf die Schaltfläche Neues Makro.

 

Das neu erstellte (und leere) Makro wird im Hauptfenster angezeigt und der Name des Makros wird in der Titelleiste des Skript-Editors angezeigt (Abbildung unten).

 

ScrMacroTree

 

 

Benennen oder Umbenennen eines Makros

Um einem Makro einen Namen zu geben oder es umzubenennen, klicken Sie im Skripting-Projekt auf den Makronamen und drücken Sie die Taste F2 oder klicken Sie mit der rechten Maustaste auf den Makronamen und wählen Sie im Kontextmenü den Befehl "Umbenennen" aus.

 

 

Öffnen eines Makros

Um ein Makro zu öffnen, klicken Sie mit der rechten Maustaste  im Ordner "Macros" der Skripting-Projektstruktur auf das Makro (siehe Abbildung oben) und wählen Sie den Befehl Öffnen. Das Makro wird im Hauptfenster angezeigt und sein Name wird in der Titelleiste des Skript-Editors angezeigt (Abbildung unten). Alternativ dazu können Sie ein Makro in der Skripting-Projektstruktur doppelklicken, um es im Hauptfenster zu öffnen.

 

 

In der Abbildung unten sehen Sie das Makro "Find Sample" der Projektdatei Bank_MultiLanguage.ump aus dem Ordner ...\UmodelExamples.

 

scr-mac-open

 

 

 

 

 

Bearbeiten des Makros

Um ein Makro zu bearbeiten, geben Sie Code ins Hauptfenster ein bzw. bearbeiten Sie diesen.

Um ein Marko zu bearbeiten, geben Sie Code ins Hauptfenster ein bzw. bearbeiten Sie diesen. Unten sehen Sie ein Beispiel für ein Makro. Dieses  Makro sucht UML-Elemente nach Namen und Typ.

 

// ############################################

// 'Find Sample' macro

// Find UML model elements by name and type

// ############################################

 

// global variables of macro

var bMatchCase                = false;

var bMatchWholeName = false;

 

var bSearchClasses                = true;

var bSearchInterfaces        = true;

var bSearchEnumerations        = true;

var bSearchPackages                  = true;

var bSearchProperties          = true;

var bSearchOperations          = true;

var bSearchEnumLiterals        = true;

var bSearchOthers                = false;

 

// import System.Windows.Forms namespace

CLR.Import( "System.Windows.Forms" );

 

// verify if UML element kind should be considered

function MatchKind( objUMLElement )

{

 if ( objUMLElement.KindName == "Class"                                 ) return bSearchClasses;

 if ( objUMLElement.KindName == "Interface"                         ) return bSearchInterfaces;

 if ( objUMLElement.KindName == "Enumeration"                ) return bSearchEnumerations;

 if ( objUMLElement.KindName == "Package"                         ) return bSearchPackages;

 if ( objUMLElement.KindName == "Property"                         ) return bSearchProperties;

 if ( objUMLElement.KindName == "Operation"                         ) return bSearchOperations;

 if ( objUMLElement.KindName == "EnumerationLiteral"        ) return bSearchEnumLiterals;

 return bSearchOthers;

}

 

// verify if UML element name matches search options

function MatchName( objUMLNamedElement, sFindText )

{

 var sName = objUMLNamedElement.Name;

 if ( !bMatchCase )

         sName = sName.toUpperCase();

 

 if ( bMatchWholeName )

         return ( sName == sFindText )

 else

         return ( sName.indexOf( sFindText ) != -1 )

}

 

// recursively search all elements

function Find( objUMLElement, sFindText )

{

 // we are only interested in named elements:

 if ( objUMLElement.IsKindOf( "NamedElement" ) )

 {

         var objUMLNamedElement = objUMLElement;

         

         // only list elements where kind and name match:

         if ( MatchKind( objUMLNamedElement ) && 

              MatchName( objUMLNamedElement, sFindText ) )

         {

                 // create a new ListViewItem class

                 var newItem = CLR.Create( "ListViewItem", objUMLNamedElement.KindName );

                 // and add it to the listview - items:

                 lastForm.lvResults.Items.Add( newItem );

                 // append name and qualified name in sub-items:

                 newItem.SubItems.Add( objUMLNamedElement.Name );

                 newItem.SubItems.Add( objUMLNamedElement.QualifiedName );

         }

 }

 

 // also iterate over all children (ownedElements):

 var ownedElements = objUMLElement.OwnedElements;

 var itr = new Enumerator( ownedElements );

 for ( ; !itr.atEnd(); itr.moveNext() )

         Find( itr.item(), sFindText );

}

 

// create and show the form:

ShowForm( "FindSample" );

 

 

Anmerkung:Makros unterstützen Parameter oder Rückgabewerte nicht.

 

 

Definieren eines Makros als automatisches Makro

Wenn ein Makro als automatisches Makro definiert wurde, kann es automatisch ausgeführt werden, wenn: (i) UModel gestartet wird oder (ii) ein Altova UModel Projekt in UModel geladen wird. Um festzulegen, ob bei beiden dieser Events automatische Makros ausgeführt werden sollen, aktivieren Sie im entsprechenden Dialogfeld im Bereich "Automatische Skriptverarbeitung" die Option Automatische Markos ausführen:

 

Beim Start von UModel: das Register "Skripting-Umgebung" des Dialogfelds "Optionen" (Menü Extras | Optionen) von UModel
Wenn ein UModel Projekt in UModel geladen wird: das Dialogfeld "Skripting-Umgebung" (Abbildung unten, Menübefehl Projekt | Skriptingeinstellungen).

 

scr-mac-auto

 

Um ein Makro als automatisches Makro zu definieren, klicken Sie mit der rechten Maustaste in die Skripting-Projektstruktur und wählen Sie den Menübefehl Als automatisches Makro definieren. Dies ist ein Ein-/Aus-Befehl; um diese Einstellung für ein Makro zu entfernen, wählen Sie den Befehl erneut aus.

 


© 2019 Altova GmbH