Création d'un complément fichier XML

Vous pouvez créer vos propres éléments de menu dans les menus de PowerAMC à l'aide d'un fichier XML

Remarque : Pour pouvoir utiliser votre complément, enregistrez-le dans le répertoire Add-ins situé dans le répertoire d'installation de PowerAMC et activez-le via la fenêtre Options générales de PowerAMC (voir Guide des fonctionnalités générales > L'interface de PowerAMC > Personnalisation de votre environnement de modélisation > Options générales > Gestion des compléments).

L'illustration suivante vous permet de comprendre la structure du fichier XML :



Profile est l'élément racine du complément fichier XML. Il contient les éléments suivants :

<!ELEMENT Profile ((Shared)?, (Metaclass)*)>.

Shared

L'élément Shared définit les menus qui sont toujours disponibles et leurs méthodes associées (éléments Menus et Methods) et les méthodes partagées (attribut GlobalScript).

L'attribut GlobalScript est utilisé pour spécifier un script (VBS) global facultatif qui peut contenir des fonctions partagées.

L'élément Menus contient des menus qui sont toujours disponibles pour l'application. Vous pouvez spécifier un emplacement pour définir l'emplacement du menu. La définition de cet emplacement peut prendre les valeurs suivantes :

  • FileImport

  • File reverse

  • Tools

  • Help

Vous ne pouvez définir qu'un menu par emplacement.

Methods définit les méthodes utilisées dans les menus décrits au sein de l'élément Menus et qui sont toujours disponibles pour l'application.

Metaclass

L'élément Metaclass est utilisé pour spécifier des menus qui sont disponibles pour une métaclasse particulière de PowerAMC. Une métaclasse s'identifie par son nom. Vous devez utiliser le nom public.

L'élément Menus contient des menus disponibles pour une métaclasse.

L'élément Menu décrit un menu disponible pour une métaclasse. Il contient un ensemble de commandes, de séparateurs et de menus contextuels. Vous pouvez spécifier un emplacement pour définir l'emplacement du menu. Il peut prendre les valeurs suivantes :

  • FileExport

  • Tools

  • Help

  • Object

Object est la valeur par défaut pour l'attribut Location.

L'élément Methods contient un ensemble de méthodes disponibles pour une métaclasse.

L'élément Method définit une méthode. Une méthode s'identifie par un nom et un script VB.

L'élément Command définit un élément de menu commande. Son nom doit être équivalent au nom d'un élément "Method" pour pouvoir être implémenté.

L'élément Popup définit un élément de sous-menu qui peut contenir des commandes, des séparateurs et des menus contextuels.

Caption représente la valeur affichée dans le menu.

Un séparateur indique que vous souhaitez insérer une ligne dans le menu.

Exemple :

<?xml version="1.0" encoding="UTF-8"?>
<Profile>
	<Metaclass Name="PdOOM.Model">
	<Menus>
	<Menu Location="Tools">
		<Popup Caption="Perforce">
			<Command Name="CheckIn" Caption="Check In"/>
			<Separator/>
			<Command Name="CheckOut" Caption="Check Out"/>
		</Popup>
	</Menu>
	</Menus>
	<Methods>
		<Method Name="CheckIn">
Sub %Method%(obj)
execute_command( p4, submit %Filename%, cmd_PipeOutput)
End Sub
		</Method>
		<Method Name="CheckOut">
Sub %Method%(obj)
execute_command( p4, edit %Filename%, cmd_PipeOutput)
End Sub
		</Method>
	</Methods>
</Metaclass>
</Profile>

Une méthode définie sous une métaclasse est supposée avoir l'objet courant comme paramètre ; son nom est calculé à partir du nom d'attribut de la balise de la méthode.

Exemple :

<Method Name="ToInt" >
Sub %Method%(obj)
 Print obj
 ExecuteCommand(&quot;%MORPHEUS%\ToInt.vbs&quot;, &quot;&quot;, cmd_InternalScript)
End Sub

Chaque nom de métaclasse doit avoir pour préfixe le nom public du type de bibliothèque auquel elle appartient, par exemple PdOOM.Class.

La notion d'héritage est prise en compte : un menu défini sur la métaclasse PdCommon.NamedObject sera disponible pour la métaclasse PdOOM.Class.

Vous ne pouvez définir qu'un menu par emplacement donné. Si vous définissez plusieurs emplacements, seul le dernier sera conservé.

Les menus définis sous l'élément Shared peuvent faire référence aux emplacements suivants : "FileImport" "Reverse" et "Help".

Ces menus ne peuvent faire référence qu'à des méthodes définies sous l'élément Shared et aucun objet n'est placé en paramètre dans ces méthodes définies sous Shared.

Exemple :

<?xml version="1.0" encoding="UTF-8"?>
<Profile>
	<Shared>
	<GlobalScript>
Option Explicit
Function Print (obj)
Output obj.classname &amp; &quot; &quot; &amp; obj.name
End Function
	/GlobalScript>
	</Shared>
	<Metaclass Name="PdOOM.Class">
	<Menus>
	<Menu>
		<Popup Caption="Transformation">
			<Command Name="ToInt" Caption="Convert to interface"/>
			<Separator/>
		</Popup>
	</Menu>
	</Menus>
	<Methods>
		<Method Name="ToInt" >
Sub %Method%(obj)
 Print obj
 ExecuteCommand(&quot;%MORPHEUS%\ToInt.vbs&quot;, &quot;&quot;, cmd_InternalScript)
End Sub
		</Method>
	</Methods>
	</Metaclass>
</Profile>

Vous pouvez retrouver le DTD au sein du dossier Add-ins du répertoire d'installation de PowerAMC.

Remarque : cette syntaxe est la même que celle utilisée dans la création d'un menu à l'aide d'un fichier de ressource.

Remarque :

Vous pouvez utiliser l'interface de l'éditeur de ressources pour visualiser dans la page XML la syntaxe d'un menu que vous avez créé dans la page Menu et qui vous aidera à construire la même syntaxe XML.