logo MagicDraw
Version 17.0

Dans MagicDraw, l’Open API permet de mettre en place des nouvelles actions (au niveau du menu par exemple). C’est particulièrement intéressant pour lancer des traitements à la demande directement depuis l’interface de l’outil.

Développer une action

Voici comment créer une action basique qui s’appellera « My Action » :
public class MyAction extends NMAction {
public static final GUILog logger = Application.getInstance().getGUILog();
public MyAction() {
super("myaction", "My Action", null, null);
setSmallIcon(new ImageIcon(getClass().getResource("icon.gif")));
}
@Override
public void actionPerformed(ActionEvent event) {
// Traitement à faire (en fonction du besoin)
logger.log("Hello World");
}
}

Enregistrer une action

Nous allons maintenant voir comment enregistrer une action au niveau du menu de MagicDraw.
Il est également possible d’enregistrer une action au niveau du Tree Browser ou de la Toolbar.

Note :
Toute action doit être ajoutée à une catégorie.
Une catégorie est un groupe d’action. Elle peut être représentée comme un bloc d’actions ou un sous-menu.
Les catégories sont ajoutées au ActionsManager qui est une sorte de conteneur d’actions.

Création d’un menu

Création d’un menu qui s’appellera « My Menu » :
public class MyConfigurator implements AMConfigurator {
private NMAction action;
public MyConfigurator (NMAction action) {
this.action = action;
}
public void configure(ActionsManager manager) {
// Rechercher si la catégorie existe déjà
NMAction category = manager.getActionFor("mymenu")
// Si elle n'existe pas, on la créé
if (category == null) {
RequirementsCategory myCategory = new MDActionsCategory("mymenu", "My Menu");
requirementCategory.setNested(true);
manager.addCategory(myCategory);
}
// On ajoute l'action à la catégorie
category.addAction(action);
}
public int getPriority() {
return AMConfigurator.MEDIUM_PRIORITY;
}
}

Enregistrer le menu et l’action

Voici comment enregistrer notre action sous notre nouveau menu :
public class ExtensionsPlugin extends Plugin {
// Méthode exécutée au démarrage de MagicDraw
@Override
public void init() {
// Récupération du ActionsManager
ActionsConfiguratorsManager manager = ActionsConfiguratorsManager.getInstance();
// Création d'une nouvelle catégorie
ActionsCategory myCategory = new ActionsCategory(null, null);
// Ajout de notre action à la catégorie
myCategory.addAction(new MyAction());
// Ajout de notre catégorie au niveau du menu
manager.addMainMenuConfigurator(new MyConfigurator(myCategory));
}
// Méthode exécutée à la fermeture de MagicDraw
@Override
public boolean close() {
return true;
}
// Méthode qui définit si le plugin est supporté
@Override
public boolean isSupported() {
return true;
}
}

La documentation de l’API MagicDraw est disponible dans le manuel MagicDraw OpenAPI UserGuide.pdf

A vous de jouer !

Publicités