Altova XMLSpy 2025 Professional Edition

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 16x16 Pixel haben und darf maximal 256 Farben enthalten. Die Bildreferenzen müssen in einem einzigen <ImageFile>-Element von links nach rechts angeordnet werden. 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. Welche Änderungen Sie vornehmen können, ist im nächsten Abschnitt weiter unten beschrieben.

 

Struktur von Modification-Elementen

Ein Modification-Element besteht aus den folgenden beiden Child-Elementen:

 

<Modification>

  <Action>Type of action</Action>

  <UIElement Type="Type of UI element" />

</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.

 

Mehrere Änderungen können folgendermaßen in einem Action-Element kombiniert werden: "Add Hide"

 

Das Element UIElement definiert alle neuen oder bestehenden Elemente der Benutzeroberfläche und kann eines der folgenden Typen sein: Symbolleisten, Schaltflächen, Menüs oder Menübefehle. Das Attribut type definiert, zu welchem dieser Typen das Benutzeroberflächen-Element gehört. Die Struktur von UIElement wird im folgenden Abschnitt beschrieben.

 

Gemeinsame Child-Elemente von UIElement

Die Elemente ID und Name sind für alle verschiedenen Typen von UI-Elementen definiert. Bei einigen Typen wird jedoch eines dieser Elemente ignoriert. So wird z.B. Name für ein Trennzeichen ignoriert.

 

<ID></ID>

<Name></Name>

 

Wenn UIElement ein bestehendes Element der Benutzeroberfläche beschreibt, wird der Wert des Elements ID von XMLSpy vorgegeben. Normalerweise sind diese ID-Werte dem User nicht bekannt. Wenn das XML-Fragment einen neuen Teil der Benutzeroberfläche beschreibt, kann die ID beliebig gewählt werden und der Wert sollte kleiner 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, die Untermenüs haben. 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 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 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. Der Inhalt des MenuID-Elements 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 Methode, um das übergeordnete Element des Menübefehls zu definieren. Wir tun dies, indem wir als Inhalt des Parent-Elements den Pfad zu Menübefehl definieren. Die Schritte im Pfad werden durch einen Doppelpunkt gekennzeichnet. Das Muster wäre ParentMenü:Submenü. Wenn das Menü kein übergeordnetes Menü hat (da es kein Untermenü ist), stellen Sie dem Namen am Anfang einen Doppelpunkt voran (siehe Beispiel unten). Das Attribut type muss den Wert MenuItem haben.

 

Im Beispiel unten wird ein Menübefehl definiert, dessen übergeordnetes Menü kein Untermenü ist:

 

<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 Symbolleistentrennzeichen und Menüs hinzufügen, wenn der Wert des ID Elements auf 0 gesetzt wird.

 

© 2018-2024 Altova GmbH