Konfigurations-XML

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

Startseite >  Referenz für Programmierer > IDE Plugins >

Konfigurations-XML

Mit Hilfe des IDE-Plug-In können Sie die Benutzeroberfläche von XMLSpy ändern. Dazu wird jede einzelne Änderung mit Hilfe eines XML-Datenstroms beschrieben. Die XML-Konfiguration wird über die Methode GetUIModifications der  IXMLSpyPlugIn-Schnittstelle an XMLSpy übergeben.

 

Die XML-Datei für das IDE Plug-In, die die Änderungen an der Benutzeroberfläche enthält, muss die folgende Struktur haben:

 

 <ConfigurationData>

         <ImageFile>path To image file</ImageFile>

         <Modifications>

                 <Modification>

                         ...

                 </Modification>

                 ...

         </Modifications>

 </ConfigurationData>

 

Sie können Symbole oder Symbolleisten-Schaltflächen für die neuen Menüeinträge, die über das Plug-In zur Benutzeroberfläche von XMLSpy hinzugefügt werden, definieren. Der Pfad zur Datei, die das Bild enthält, wird über das Element ImageFile definiert. Jedes Bild muss 16 x 16 Pixel haben und darf maximal 256 Farben enthalten. Die Bildreferenzen müssen in einer einzigen (<ImageFile>...) Zeile von links nach rechts angeordnet sein. Der am weitesten rechts gelegene Bild-Indexwert ist Null.

 

Das Element Modification kann beliebig viele Modification Child-Elemente enthalten. Jedes Modification-Element definiert eine bestimmte Änderung an der Standardbenutzeroberfläche von XMLSpy. Ab Version 4.3 können Benutzeroberflächenelemente auch aus XMLSpy entfernt werden.

 

Struktur von Modification-Elementen

Alle Modification-Elemente bestehen aus den folgenden beiden Child-Elementen:

 

 <Modification>

         <Action>Type of action</Action>

         <UIElement Type="type of UI element">

         </UIElement>

 </Modification>

 

Gültige Werte für das Element Action sind:

 

Add        - um das darauf folgende Benutzeroberflächenelement zu XMLSpy hinzuzufügen

Hide        - um das darauf folgende Benutzeroberflächenelement in XMLSpy auszublenden

Remove - um das Benutzeroberflächenelement im Dialogfeld "Anpassen" aus dem Listenfeld "Befehle" zu entfernen.

 

Sie können Werte des Action-Elements kombinieren z.B. "Hide Remove"

 

Das Element UIElement beschreibt alle neuen oder bestehenden Benutzeroberflächenelemente für XMLSpy. Mögliche Elemente sind derzeit: neue Symbolleisten, Schaltflächen, Menüs oder Menübefehle. Das Attribut type definiert, welches Benutzeroberflächenelement vom XML-Element beschrieben wird.

 

Gemeinsame Child-Elemente von UIElement

Die Elemente "ID" und "Name" sind für alle verschiedenen Arten von XML UIElement-Fragmenten gültig. Es ist jedoch möglich, einen der Werte für einen bestimmten Typ von UIElement zu ignorieren. So wird z.B. "Name" für ein Trennzeichen ignoriert.

 

 <ID></ID>

 <Name></Name>

 

Wenn UIElement ein bestehendes Element des Benutzeroberfläche beschreibt, wird der Wert des Elements "ID" von XMLSpy vorgegeben. Normalerweise sind diese ID-Werte dem User nicht bekannt. Wenn das ID-Fragment einen neuen Teil der Benutzeroberfläche beschreibt, so kann die ID beliebig gewählt werden und der Wert sollte weniger als 1000 sein.

Das Element Name definiert den Textwert. Bestehende UI-Elemente können nur nach ihrem Namen identifiziert werden, z.B. Menüs und Menübefehle mit den dazugehörigen Untermenüs. Bei neuen Benutzeroberflächenelementen definiert das Element Name die Überschrfit, z.B. den Titel einer Symbolleiste oder den Text eines Menübefehls.

 

Symbolleisten und Menüs

Um eine Symbolleiste zu definieren, muss die ID und/oder der Name der Symbolleiste definiert werden. Eine bestehende Symbolleiste kann nur durch den Namen oder die ID, unter der sie bekannt ist, definiert werden. Um eine neue Symbolleiste zu erstellen, müssen beide Werte definiert werden. Das Attribut type muss "ToolBar" sein.

 

 <UIElement Type="ToolBar">

         <ID>1</ID>

         <Name>TestPlugIn</Name>

 </UIElement>

 

Um ein XMLSpy Menü zu definieren, benötigen Sie zwei Parameter:

die ID der Menüleiste, die das Menü enthält. Wenn im Hauptfenster keine XML-Dokumente geöffnet sind, ist die ID der Menüleiste 128. Wenn ein oder mehrere Dokumente geöffnet sind, ist die ID der Menüleiste 129.
den Menünamen. Menüs haben keinen dazugehörigen ID-Wert. Im folgenden Beispiel wird das Menü "Edit" (Bearbeiten) der Menüleiste definiert, die aktiv ist, wenn mindestens ein XML-Dokument geöffnet ist:

 

 <UIElement Type="Menu">

         <ID>129</ID>

         <Name>Edit</Name>

 </UIElement>

 

Wenn Sie ein neues Menü erstellen möchten, wird ein zusätzliches Element verwendet. Das Element Place definiert die Position des neuen Menüs in der Menüleiste:

 

 <UIElement Type="Menu">

         <ID>129</ID>

         <Name>PlugIn Menu</Name>

         <Place>12</Place>

 </UIElement>

 

Ein Wert von -1 für das Element Place definiert die neue Schaltfläche oder den neuen Menübefehl am Ende des Menüs oder der Symbolleiste.

 

Befehle

Wenn Sie einen neuen Befehl in Form einer Symbolleisten-Schaltfläche oder eines Menübefehls hinzufügen, kann das UIElement-Fragment jedes beliebige dieser Subelemente enthalten:

 

 <MacroName></MacroName>

 <Info></Info>

 <ImageID></ImageID>

 

Wenn MacroName definiert ist, sucht XMLSpy in der Skripting-Umgebung nach einem Makro dieses Namens und führt es jedes Mal, wenn dieser Befehl aufgerufen wird, aus. Das Element Info enthält einen kurzen Beschreibungsstring, der in der Statusleiste  angezeigt wird, wenn sich der Mauszeiger über dem entsprechenden Befehl (Schaltfläche oder Menübefehl) befindet. ImageID definiert den Index des Symbols in der externen Bilddatei. Bitte beachten Sie, dass alle Symbole in einer Bilddatei gespeichert sind.

 

Um einen Symbolleistenbefehl zu definieren, erstellen Sie ein UIElement mit der folgenden Struktur:

 

 <UIElement Type="ToolBarItem">

         <!--don't reuse local IDs even the commands do the same-->

         <ID>5</ID>

         <Name>Open file from repository...</Name>

         <!--Set Place To -1 If this is the first button To be inserted-->

         <Place>-1</Place>

         <ImageID>0</ImageID>

         <ToolBarID>1</ToolBarID>

         <!--instead of the toolbar ID the toolbar name could be used-->

         <ToolBarName>TestPlugIn</ToolBarName>

 </UIElement>

 

Zusätzliche Elemente zum Deklarieren einer Symbolleisten-Schaltfläche sind Place, ToolBarID und ToolBarName. ToolBarID und ToolBarName dienen dazu, die Symbolleiste zu identifizieren, die die neue oder bestehende Schaltfläche enthält. Die Groß- und Kleinschreibung des Textwerts von ToolBarName spielt eine Rolle. Das  Attribut type von UIElement muss "ToolBarItem" sein.

 

Um einen Menübefehl zu definieren, stehen zusätzlich zu den Standardelementen, die zum Deklarieren eines Befehls verwendet werden, die Elemente MenuID, Place und Parent zur Verfügung. MenuID kann 128 oder 129 sein. Nähere Informationen zu diesen Werten finden Sie unter "Symbolleisten und Menüs".

 

Das Element Parent dient dazu, das Menü anzugeben, in das der neue Menübefehl eingefügt werden soll. Da die Befehle von Untermenüs keine eindeutige Windows ID haben, benötigen wir eine andere Möglichkeit, um das übergeordnete Element des Menübefehls zu definieren.

 

Der Wert des Elements Parent ist ein Pfad zu einem Menübefehl.

Der Textwert des Elements "Parent" muss gleich dem übergeordneten Menünamen des Untermenüs sein, wobei der Name des Untermenüs durch einen Doppelpunkt getrennt wird. Wenn das Menü kein übergeordnetes Menü hat, da es kein Untermenü ist, stellen Sie dem Namen am Anfang einen Doppelpunkt voran. Das Attribut type muss den Wert "MenuItem" haben. Beispiel für ein UIElement, das einen Menübefehl definiert:

 

 <UIElement Type="MenuItem">

         <!--the following element is a Local command ID-->

         <ID>3</ID>

         <Name>Open file from repository...</Name>

         <Place>-1</Place>

         <MenuID>129</MenuID>

         <Parent>:PlugIn Menu</Parent>

         <ImageID>0</ImageID>

 </UIElement>

 

Sie können in XMLSpy Trennlinien für Symbolleisten und Menüs hinzufügen, wenn der Wert des Elements ID auf 0 gesetzt ist.


© 2019 Altova GmbH