Ensembles d'actions

Identificateur : org.eclipse.ui.actionSets

Description : ce point d'extension est utilisé pour ajouter des menus, des options de menu et des boutons de barre d'outils aux zones communes de la fenêtre du plan de travail. Ces contributions sont collectivement connues sous le nom d'ensembles d'actions et apparaissent dans la fenêtre du plan de travail via les préférences utilisateur.

Marques de configuration :

   <!ELEMENT actionSet (menu)* (action)* (description?)>
   <!ATTLIST actionSet
      id        CDATA #REQUIRED
      label     CDATA #REQUIRED
      visible   (true | false) #IMPLIED
    >
    <!ELEMENT description (#PCDATA)>

   <!ELEMENT menu (separator)+ (groupMarker)*>
   <!ATTLIST menu
      id         CDATA #REQUIRED
      label      CDATA #REQUIRED
      path       CDATA #IMPLIED
   >    <!ELEMENT separator EMPTY>
   <!ATTLIST separator
      name       CDATA #REQUIRED
   >
  • name : nom du séparateur auquel il peut être ultérieurement fait référence en tant que dernier jeton dans le chemin d'accès de l'action. De ce fait, les séparateurs servent de groupes désignés dans lesquels des actions et des sous-menus peuvent être ajoutés.
  •    <!ELEMENT groupMarker EMPTY>
       <!ATTLIST groupMarker
          name       CDATA #REQUIRED
       >
  • name est le nom du marqueur de groupe pouvant être ensuite référencé comme dernier jeton dans le chemin d'accès à l'action.
  •    <!ELEMENT action (selection)* (enablement)?>
       <!ATTLIST action
          id                NMTOKEN #REQUIRED
          label             CDATA #REQUIRED
          accelerator       CDATA #IMPLIED
          definitionId      CDATA #IMPLIED
          menubarPath       CDATA #IMPLIED
          toolbarPath       CDATA #IMPLIED
          icon              CDATA #IMPLIED
          disabledIcon      CDATA #OPTIONAL
          hoverIcon         CDATA #OPTIONAL
          tooltip           CDATA #IMPLIED
          helpContextId     CDATA #IMPLIED
          state             (true | false) #IMPLIED
          pulldown          (true | false) #IMPLIED
          class             CDATA #OPTIONAL
          retarget          (true | false) #OPTIONAL
          allowLabelUpdate  (true | false) #OPTIONAL
          enablesFor        CDATA #IMPLIED
       >    <!ELEMENT selection EMPTY>
       <!ATTLIST selection
          class             CDATA #REQUIRED
          name              CDATA #IMPLIED
       >    <!ELEMENT enablement (and | or | not | objectClass | objectState | systemProperty | pluginState)*>
       <!ATTLIST enablement EMPTY>
    Dans la version 2.0 d'Eclipse, un élément enablement peut être utilisé pour définir l'activation de l'action. Pour en savoir plus sur l'utilisation de cet élément, consultez le fichier actionExpressions.html.
    Exemples :

    L'exemple ci-dessous décrit un jeu d'actions (notez les sous-éléments et la façon dont sont utilisés les attributs) :

        <extension point = "org.eclipse.ui.actionSets">
            <actionSet id="com.xyz.actionSet"
                label="My Actions"
                visible="true">
                <menu id="com.xyz.xyzMenu"
                    label="XYZ Menu"
                    path="additions">
                    <separator name="group1"/>
                </menu>
                <action id="com.xyz.runXYZ"
                    label="&amp;Run XYZ Tool"
                    menubarPath="com.xyz.xyzMenu/group1"
                    toolbarPath="Normal/XYZ"
                    icon="icons/runXYZ.gif"
                    tooltip="Run XYZ Tool"
                    helpContextId="com.xyz.run_action_context"
                    class="com.xyz.actions.RunXYZ"
                    enablesFor="1">
                    <selection class="org.eclipse.core.resources.IFile" name="*.java"/>
                </action>
                <action id="com.xyz.runABC"
                    label="&amp;Run ABC Tool"
                    menubarPath="com.xyz.xyzMenu/group1"
                    toolbarPath="Normal/XYZ"
                    icon="icons/runABC.gif"
                    tooltip="Run ABC Tool"
                    helpContextId="com.xyz.run_abc_action_context"
                    retarget="true"
                    allowLabelUpdate="true">
                </action>
            </actionSet>
        </extension>

    Dans l'exemple ci-dessus, l'action spécifiée, désignée par "My Actions", est initialement visible dans chaque perspective. Elle n'active qu'une seule sélection (l'attribut enablesFor). De plus, les objets de la sélection doivent implémenter l'interface spécifiée (IFile) et être un fichier Java.

    Informations d'API : la valeur de l'attribut class doit être le nom complet qualifié d'une classe qui implémente org.eclipse.ui.IWorkbenchWindowActionDelegate ou org.eclipse.ui.IWorkbenchWindowPulldownDelegate. Cette dernière doit être implémentée dans les cas où la valeur de l'attribut pulldown est "true". Cette classe est chargée aussi tard que possible afin d'éviter le chargement du plug-in tout entier avant que cela ne soit réellement nécessaire.

    Les critères d'activation pour une extension d'action sont initialement définis par enablesFor, selection et enablement. Toutefois, une fois le délégué d'action instancié, il peut contrôler l'état d'activation de l'action directement dans sa méthode selectionChanged.

    Notez que le plan de travail ne génère pas de menus à la demande de plug-in. Les chemins de menus doit faire référence à des menus existant déjà.

    Les libellés d'actions et de menus peuvent contenir des caractères spéciaux qui encodent les mnémoniques et les raccourcis clavier en respectant les règles suivantes :

    1. Les mnémoniques sont spécifiées à l'aide du caractère perluète (&) placé devant un caractère sélectionné dans le texte traduit. Comme le caractère perluète n'est pas autorisé dans les chaînes XML, utilisez l'entité de caractère &amp;.
    2. Des raccourcis clavier facultatifs sont spécifiés à la fin de la chaîne de nom, avec @ suivi d'une série de modificateurs et du caractère final (par exemple, &amp;Enregistrer@Ctrl+S). Le modificateur peut être chaîné à l'aide du signe "+" comme délimiteur (comme dans @Ctrl+Maj+S).
    Si deux actions ou plus sont ajoutées à un menu ou une barre d'outils par une extension, elles apparaîtront dans l'ordre inverse de celui dans le fichier plugin.xml. Ce comportement est intuitif. Toutefois, il a été découvert qu'une fois l'API de plateforme Eclipse figée. Si vous modifiez ce comportement maintenant, vous endommagez chaque plug-in utilisant le comportement existant.

    Implémentation fournie : les plug-in peuvent utiliser ce point d'extension pour ajouter de nouveaux menus de niveau supérieur (par exemple, Débogage). Les plug-in peuvent également définir des groupes désignés qui permettent aux autres plug-in d'y ajouter leurs actions.

    Des menus de niveau supérieur sont créés à l'aide de la valeur suivante pour l'attribut path :

    L'omission de l'attribut path entraîne l'ajout du nouveau menu au groupe de la barre de menus additions.

    Les groupes par défaut dans une fenêtre du plan de travail sont définis dans l'interface IWorkbenchActionConstants. Ces constantes peuvent être utilisées dans du code pour une contribution dynamique. Les valeurs peuvent être également copiées dans un fichier XML pour une intégration étroite aux menus et à la barre d'outils existants dans le plan de travail.

    Plusieurs éléments des menus et de la barre d'outils de la fenêtre du plan de travail sont définis par algorithme. Dans ce cas, un mécanisme distinct doit être utilisé pour étendre la fenêtre. Par exemple, ajoutez une nouvelle vue de plan de travail pour faire apparaître une nouvelle option dans le menu Fenêtre. Les extensions Importation, Exportation et Nouveaux assistants sont également ajoutées automatiquement à la fenêtre.
     

    Copyright IBM Corporation and others 2000, 2002.