Rational Developer for System z, version 7.6.1

Apport d'une action

Vous pouvez ajouter une action au menu contextuel de la vue Référentiels CARMA pour que celle-ci soit exécutée sur des ressources CARMA.

Avant de commencer

Avant de pouvoir ajouter une action CARMA, vous devez disposer de la base appropriée pour étendre le plug-in CARMA Rational Developer for System z. Reportez-vous au guide de développement de plug-in sur plateforme Eclipse pour plus informations sur le démarrage du développement d'une extension de plug-in.

A propos de cette tâche

Pour apporter une action CARMA au plug-in CARMA Rational Developer for System z, procédez comme suit :

Procédure

  1. Mettez à jour votre fichier plugin.xml pour qu'il utilise le point d'extension org.eclipse.ui.popupMenus pour définir une classe de délégation d'objet pour des ressources implémentant l'interface IResource ou CARMAContent. Les deux interfaces de ressources pouvant être spécifiées sont IFile (qui étend l'interface IResource) et CARMAContent. Si vous spécifiez IFile comme classe d'objet ressource, l'élément de menu apparaît dans le menu contextuel de la vue Navigateur, sur le contenu de projet local. Si vous spécifiez CARMAContent comme classe d'objet ressource, l'élément de menu apparaît dans le menu contextuel de la vue Référentiels CARMA.

    Exemple de marquage permettant d'ajouter un élément de menu à la vue Navigateur :

    Vous pouvez inclure le marquage suivant à votre fichier plugin.xml si vous prévoyez de définir l'affichage d'un élément de menu dans la vue Navigateur pour des fichiers gérés par CARMA :

    <extension point="org.eclipse.ui.popupMenus">
            <objectContribution
                    id="com.ibm.carma.action.disconnected.iFile"
                    objectClass="org.eclipse.core.resources.IFile"
                    adaptable="true">
                    <filter
                            name="projectPersistentProperty"
                            value="org.eclipse.team.core.repository=com.ibm.carma">
                    </filter>
                    <action
                            label="ABC Action"
                            class="com.xyz.ABCDelegate"
                            id="com.xyz.abc">
                    </action>
            </objectContribution>
    </extension>
    Notez que l'attribut objectClass de la balise objectContribution est spécifié pour être org.eclipse.core.resources.IFile, indiquant que cet élément de menu doit apparaître dans le menu contextuel de la vue Navigateur. L'attribut id de la balise objectContribution est simplement un identificateur unique pour votre action. La balise filter spécifiée limite l'élément de menu pour que celui-ci apparaisse uniquement pour les fichiers de la vue Navigateur gérés par CARMA. Vous pouvez également ajouter des balises filter supplémentaires en fonction de vos besoins. Enfin, la balise action spécifie la classe de délégation d'objet dans son attribut class.

    Exemple de marquage permettant d'ajouter un élément de menu à la vue Référentiels CARMA :

    Vous pouvez inclure le marquage suivant à votre fichier plugin.xml si vous prévoyez de définir l'affichage d'un élément de menu dans la vue Référentiels CARMA pour des ressources :

    <extension point="org.eclipse.ui.popupMenus">
            <objectContribution
                    id="com.ibm.carma.action.disconnected.carmaContent"
                    objectClass="com.ibm.carma.model.CARMAContent
                    adaptable="true">
                    <filter
                            name="repositoryManager"
                            value="My RAM">
                    </filter>
                    <action
                            label="ABC Action"
                            class="com.xyz.ABCDelegate"
                            id="com.xyz.abc">
                    </action>
            </objectContribution>
    </extension>
    Ici, l'attribut objectClass de la balise objectContribution est en revanche spécifié pour être com.ibm.carma.model.CARMAContent, indiquant que cet élément de menu doit apparaître dans le menu contextuel de la vue Référentiels CARMA. Notez qu'un filtre différent est utilisé dans l'exemple présent : Ce filtre limite l'élément de menu pour qu'il apparaisse uniquement pour les ressources situées sous un gestionnaire RAM appelé "My RAM". L'attribut name de la balise filter est utilisé pour spécifier le type de filtre appliqué. Voir CarmaActionFilter pour d'autres valeurs pertinentes pour l'attribut name. Enfin, la balise action spécifie la classe de délégation d'objet dans son attribut class.
  2. Définissez votre classe de délégation d'objet en implémentant l'interface IObjectActionDelegate ou en étendant CarmaObjectActionDelegate (une classe pratique qui implémente l'interface IObjectActionDelegate). Il est recommandé que la classe de délégation d'objet étende CarmaObjectActionDelegate, car cette classe contient de nombreuses fonctions aide particulièrement utiles.

    Exemple de code pour ABCDelegate :

    Vous pouvez utiliser le code suivant comme point de départ du développement de votre propre délégation d'objet :
    public class ABCDelegate extends CarmaObjectActionDelegate {
    
            public void run(IAction action) {
                    CARMAContent[] members = (CARMAContent[]) getSelectedCarmaResources().toArray(new CARMAContent[0]);
    
                    //perform task, schedule job, etc.
            }
    
            public void selectionChanged(IAction action, ISelection selection) {
                    super.selectionChanged(action, selection);
    
                    //this is the ID assigned by the installation of the action
                    action.setEnabled(!isUnsupported("101"));
            }
    }

    La première ligne de la méthode run ci-dessus donne un tableau des ressources CARMA sélectionnées, que vous pouvez ensuite utiliser pour exécuter votre action. Vous pouvez, par exemple, lire en boucle toutes les ressources sélectionnées et définir certaines propriétés de métadonnées. Bien que vous n'ayez réellement besoin que de remplacer la méthode run, vous pouvez également trouver utile de remplacer la méthode selectionChanged pour mettre à jour la disponibilité de votre action, comme illustré dans l'exemple ci-dessus.

    Telle que définie dans l'exemple, la méthode selectionChanged utilise la fonction d'aide isUnsupported de CarmaObjectActionDelegate pour activer l'action avec un ID action de 101 si la nouvelle sélection d'objets prend en charge l'action. Bien qu'une valeur de 101 soit codée en dur dans l'exemple de code, il est possible de résoudre l'ID action de manière dynamique si le nom de l'action est connu. Il suffit d'utiliser la méthode getActions de l'objet RepositoryManager approprié pour extraire la liste des actions disponible pour ce gestionnaire RAM, effectuer une recherche sur la liste pour trouver l'action appropriée en fonction du nom de l'action, puis utiliser la méthode getActionId pour extraire l'ID action de l'objet Action correspondant. Vous pouvez résoudre l'ID à l'aide de cette méthode plus dynamique si vous n'êtes pas certain de l'ID action de votre action.

Conditions d'utilisation | Commentaires

Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)