Capacités

Identificateur : org.eclipse.ui.capabilities

Description : Ce point d'extension est utilisé pour enregistrer des extensions de capacités de projet. En termes d'interface, les capacités sont l'équivalent des natures de projet CORE et ont une relation un à un avec ces dernières. Le plan de travail permet à l'utilisateur d'ajouter et de supprimer des capacités d'un projet à tout moment via la boîte de dialogue de propriétés ou l'assistant de création de projet.

Les capacités correspondent aux fonctions déterminées d'un projet. Par exemple, un projet peut posséder une capacité Java permettant aux fichiers *.java qu'il comporte d'être compilés à l'aide d'un compilateur Java. Si le rôle du projet évolue, ses capacités sont modifiables pour répondre aux nouveaux besoins. Par exemple, un projet peut au départ être doté d'une simple capacité Java et devoir utiliser le JNI pour l'une des bibliothèques. L'utilisateur peut alors ajouter une capacité C++ (si elle est disponible) au projet.

Certaines capacités peuvent gérer l'interface utilisateur pour d'autres capacités. Tel est le cas lorsqu'une capacité en requiert d'autres (notez que les informations sur les conditions requises sont issues du point d'extension org.eclipse.core.resources.natures). Par exemple, une capacité Web a besoin d'une capacité Java pour compiler des servlets. Toutefois, elle peut présenter soit une page plus simple pour configurer la capacité Java, soit aucune page et l'ajouter avec les valeurs par défaut appropriées.

L'assistant d'installation d'une capacité est chargé de rassembler les informations nécessaires afin d'ajouter sa nature et celles des capacités pour lesquelles elle gère l'interface utilisateur. L'assistant doit également se charger de l'opération lorsque plusieurs voire toutes les capacités requises sont déjà installées et configurées.

L'assistant de désinstallation d'une capacité est chargé de rassembler les informations nécessaires afin de supprimer sa nature. Il doit également supprimer les natures des autres capacités pour lesquelles celle concernée gère l'interface utilisateur. Ces autres capacités à supprimer seront indiquées dans la méthode init.

Les capacités peuvent indiquer les perspectives auxquelles l'utilisateur peut basculer lorsqu'elles sont ajoutées au projet. Il peut ainsi découvrir de nouvelles perspectives permettant de tirer profit des nouvelles capacités. Les capacités qui gèrent l'interface utilisateur pour d'autres contrôlent également la liste de leurs perspectives. Par exemple, la capacité Web gère l'interface utilisateur de la capacité Java qu'elle requiert. La fonction "Web" peut choisir d'inclure ou non les diverses perspectives Java.

Les catégories définies par un plug-in peuvent être référencées par d'autres plug-in à l'aide de l'attribut category.

Le nom de la capacité présenté est accompagné de l'attribut name dans l'élément d'extension du point d'extension org.eclipse.core.resources.natures.

Depuis : Version 2.0

Marques de configuration :

   <!ELEMENT category EMPTY>
   <!ATTLIST category
      id             CDATA #REQUIRED
      name           CDATA #REQUIRED
   >

   <!ELEMENT capability (handleUI)* (perspectiveChoice)*>
   <!ATTLIST capability
      id                 CDATA #REQUIRED
      natureId           CDATA #REQUIRED
      category           CDATA #OPTIONAL
      icon               CDATA #OPTIONAL
      installWizard      CDATA #REQUIRED
      installDetails     CDATA #OPTIONAL
      uninstallWizard    CDATA #IMPLIED
      uninstallDetails   CDATA #IMPLIED
      description        CDATA #OPTIONAL
   >    <!ELEMENT handleUI EMPTY>
   <!ATTLIST handleUI
      id  CDATA #REQUIRED
   >    <!ELEMENT perspectiveChoice EMPTY>
   <!ATTLIST perspectiveChoice
      id  CDATA #REQUIRED
   > Exemples :

Voici l'exemple d'une configuration de capacité :

   <extension point="org.eclipse.ui.capabilities">
      <category
        id="com.xyz.weather"
        name="Weather Elements">
      </category>
      <capability
          id="com.xyz.snowCapability"
          natureId="com.xyz.snowNature"
          category="com.xyz.weather"
          icon="./icons/snowCapability.gif"
          installWizard="com.xyz.SnowCapabilityWizard">
          installDetails="You will be asked to supply a locale id.">
          description="Turn your project into a winter wonderland!">
          <handleUI
              id="com.xyz.waterCapability"
          </handleUI>
          <perspectiveChoice
              id="com.xyz.skiPerspective"
          </perspectiveChoice>
          <perspectiveChoice
              id="com.xyz.rainPerspective"
          </perspectiveChoice>
      </capability>
      <capability
          id="com.xyz.waterCapability"
          natureId="com.xyz.waterNature"
          category="com.xyz.weather"
          icon="./icons/waterCapability.gif"
          installWizard="com.xyz.WaterCapabilityWizard">
          installDetails="You will be asked to supply a locale id.">
          description="Turn your project into a watery wonderland!">
          <perspectiveChoice
              id="com.xyz.rainPerspective"
          </perspectiveChoice>
          <perspectiveChoice
              id="com.xyz.drinkPerspective"
          </perspectiveChoice>
      </capability>
   </extension>

Informations d'API : la valeur de l'attribut installWizard doit représenter une classe implémentant l'interface org.eclipse.ui.ICapabilityInstallWizard. L'interface IProject transmise dans la méthode init existera et pourra être interrogée quant à l'existence d'autres natures. L'assistant d'installation de capacité ne doit ni fermer ni supprimer le projet transmis à la méthode init.

La valeur de l'attribut installWizard doit représenter une classe implémentant l'interface org.eclipse.ui.ICapabilityUninstallWizard. L'interface IProject transmise dans la méthode init existera et pourra être interrogée quant à l'existence d'autres natures. L'assistant de désinstallation de la capacité ne doit ni fermer ni supprimer le projet transmis dans la méthode init.

Implémentation fournie : le plan de travail ne fournit pas de capacités.

Copyright IBM Corp. 2000, 2001.  All Rights Reserved.