Posibilidades

Identificador: org.eclipse.ui.capabilities

Descripción: este punto de extensión permite registrar extensiones de las posibilidades de un proyecto. Las posibilidades son el equivalente UI de las naturalezas de los proyectos del núcleo (CORE) y tienen una relación biunívoca con dichas naturalezas. El entorno de trabajo permite al usuario añadir posibilidades a un proyecto o eliminarlas en cualquier momento, utilizando para ello el diálogo de propiedades o el asistente de proyecto nuevo.

Las posibilidades representan las prestaciones concretas que tiene un proyecto. Por ejemplo, un proyecto puede tener una posibilidad "Java" que permite que los archivos *.java del proyecto se compilen con un compilador Java. Si el cometido del proyecto cambia con el tiempo, se pueden modificar las posibilidades del proyecto para que respondan a las nuevas necesidades. Por ejemplo, un proyecto podría tener inicialmente una posibilidad Java simple, pero más adelante podría adquirir un nuevo requisito para utilizar la interfaz JNI en una determinada biblioteca de legado. Luego el usuario podría añadir una posibilidad "C++" (si existe alguna) al proyecto para responder al nuevo requisito.

Algunas posibilidades podrían proponerse manejar la interfaz de usuario de otras posibilidades. Esto sucede en general cuando una posibilidad necesita un número determinado de otras posibilidades (tenga en cuenta que la información de prerrequisitos se deriva del punto de extensión org.eclipse.core.resources.natures). Por ejemplo, una posibilidad "Web" necesita la posibilidad "Java" para compilar servlets, pero podría tener previsto presentar una página mucho más sencilla para configurar la posibilidad "Java" o incluso no presentar ninguna página acerca de la posibilidad "Java" y tan solo añadirla con los valores por omisión apropiados.

El asistente de instalación de una posibilidad es responsable de recoger la información necesaria del usuario para añadir la correspondiente naturaleza y las naturalezas de aquellas posibilidades cuya UI vaya a estar manejada por esta posibilidad. El asistente de instalación debe manejar la situación en la que algunas o todas las posibilidades necesarias ya estén instaladas y configuradas.

El asistente de desinstalación de una posibilidad es responsable de recoger la información necesaria del usuario para eliminar la correspondiente naturaleza. También debe eliminar las otras naturalezas de las posibilidades que el usuario quiere que se eliminen y cuya UI esté manejada por esta posibilidad. Estas otras posibilidades que el usuario quiere que se eliminen se proporcionarán en el método init.

Las posibilidades pueden especificar a qué perspectivas puede pasar un usuario cuando se añadan al proyecto. Esto permite al usuario descubrir nuevas perspectivas que puedan sacar partido de las nuevas posibilidades. Las posibilidades que manejan la interfaz de usuario de otras posibilidades también controlan la lista de perspectivas de esas posibilidades. Por ejemplo, la posibilidad "Web" maneja la interfaz de usuario de la posibilidad "Java" que necesita. La posibilidad "Web" puede optar por incluir o no las diversas perspectivas Java.

El atributo category permite que otros conectores puedan hacer referencia a las categorías definidas por un conector.

Fíjese en que el nombre de la posibilidad que se presenta al usuario procede del atributo "name" del elemento extension del punto de extensión org.eclipse.core.resources.natures.

A partir del: Release 2.0

Códigos XML de configuración:

   <!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
   > Ejemplos:

A continuación figura un ejemplo de configuración de posibilidades:

   <extension point="org.eclipse.ui.capabilities">
      <category
        id="com.xyz.weather"
        name="Elementos meteorológicos">
      </category>
      <capability
          id="com.xyz.snowCapability"
          natureId="com.xyz.snowNature"
          category="com.xyz.weather"
          icon="./icons/snowCapability.gif"
          installWizard="com.xyz.SnowCapabilityWizard">
          installDetails="Se le pedirá que proporcione el ID de un entorno local.">
          description="¡Convierta su proyecto en un maravilloso país invernal!">
          <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="Se le pedirá que proporcione el ID de un entorno local.">
          description="¡Convierta su proyecto en un maravilloso país lluvioso!">
          <perspectiveChoice
              id="com.xyz.rainPerspective"
          </perspectiveChoice>
          <perspectiveChoice
              id="com.xyz.drinkPerspective"
          </perspectiveChoice>
      </capability>
   </extension>

Información sobre las API: el valor del atributo installWizard debe representar una clase que implemente la interfaz org.eclipse.ui.ICapabilityInstallWizard. El IProject que se pasa en el método init existirá y en él se podrán realizar consultas relacionadas con la existencia de otras naturalezas. El asistente de instalación de la posibilidad no debe cerrar ni suprimir el proyecto que se pasa en el método init.

El valor del atributo uninstallWizard debe representar una clase que implemente la interfaz org.eclipse.ui.ICapabilityUninstallWizard. El IProject que se pasa en el método init existirá y en él se podrán realizar consultas relacionadas con la existencia de otras naturalezas. El asistente de desinstalación de la posibilidad no debe cerrar ni suprimir el proyecto que se pasa en el método init.

Implementación suministrada: el entorno de trabajo no proporciona ninguna posibilidad.

Copyright IBM Corp. 2000, 2001. Reservados todos los derechos.