Funzioni

Identificativo: org.eclipse.ui.capabilities

Descrizione: questo punto di estensione viene utilizzato per registrare le estensioni delle funzioni di un progetto. Le funzioni costituiscono l'equivalente dell'interfaccia utente delle nature progetto di CORE e sono in una relazione di uno-a-uno con le nature progetto. Il workbench consente all'utente di aggiungere e rimuovere funzioni da un progetto in qualsiasi momento utilizzando la finestra di dialogo delle proprietà o nella creazione guidata di un nuovo progetto.

Le funzioni rappresentano possibilità particolari di un progetto. Ad esempio, un progetto potrebbe essere dotato di una funzione "Java" che consente di compilare i file *.java del progetto mediante un compilatore Java. Se il ruolo del progetto si modifica nel corso del tempo, le funzioni del progetto possono essere modificate per soddisfare le nuove necessità. Ad esempio, un progetto potrebbe cominciare come una semplice funzione Java, ma in seguito ottenere un nuovo requisito per utilizzare JNI con qualche libreria precedente. Per soddisfare questo requisito, l'utente potrebbe aggiungere al progetto una funzione "C++" (se presente).

Alcune funzioni potrebbero gestire l'interfaccia utente relativa a funzioni diverse. L'eventualità si verifica quando una funzione necessita di numerose funzioni diverse (si noti che le informazioni relative ai prerequisiti sono tratte dal punto di estensione org.eclipse.core.resources.natures). Ad esempio, una funzione "Web" compila i servlet mediante una funzione "Java", ma potrebbe volere presentare una pagina molto più semplice per configurare la funzione "Java" o potrebbe persino aggiungerla mediante le appropriate impostazioni predefinite senza presentare neanche una pagina.

E compito dell'installazione guidata di una funzione raccogliere dall'utente le informazioni necessarie per aggiungere la relativa natura nonché le nature delle funzioni di cui gestisce l'interfaccia utente. L'installazione guidata deve gestire la situazione in cui alcune o tutte le funzioni richieste sono già installate e configurate.

E compito della disinstallazione guidata di una funzione raccogliere dall'utente le informazioni necessarie per rimuoverne la natura. La disinstallazione guidata inoltre deve rimuovere tutte le nature dalle funzioni che l'utente desidera rimuovere e le funzioni di cui gestisce l'interfaccia utente. Le altre funzioni che l'utente desidera rimuovere saranno fornite nel metodo init.

Le funzioni possono specificare le prospettive a cui un utente può passare dopo averle aggiunte a un progetto. In questo modo l'utente può trovare nuove prospettive in grado di utilizzare le nuove funzioni. Le funzioni che gestiscono l'interfaccia utente per altre funzioni controllano anche l'elenco delle prospettive relative a queste funzioni. Ad esempio, la funzione "Web" gestisce l'interfaccia utente per la necessaria funzione "Java". La funzione "Web" può scegliere di includere o meno le diverse prospettive Java.

Le categorie definite da un plug-in possono fare riferimento ad altri plug-in mediante l'attributo category.

Il nome della funzione presentato all'utente deriva dall'attributo "name" nell'elemento di estensione del punto di estensione org.eclipse.core.resources.natures.

Da: versione 2.0

Tag di configurazione:

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

Di seguito viene riportato un esempio di configurazione di una funzione:

   <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>

Informazioni API: il valore dell'attributo installWizard deve rappresentare una classe che implementa l'interfaccia org.eclipse.ui.ICapabilityInstallWizard. Sarà presente un progetto IProject trasferito nel metodo init che potrà essere interrogato in merito all'esistenza di altre nature. L'installazione guidata della funzione non deve chiudere o eliminare il progetto trasferito nel metodo init.

Il valore dell'attributo uninstallWizard deve rappresentare una classe che implementa l'interfaccia org.eclipse.ui.ICapabilityUninstallWizard. Sarà presente un progetto IProject trasferito nel metodo init che potrà essere interrogato in merito all'esistenza di altre nature. La disinstallazione guidata della funzione non deve chiudere o eliminare il progetto trasferito nel metodo init.

Implementazione fornita: il workbench non fornisce alcuna funzione.

Copyright IBM Corp. 2000, 2001. Tutti i diritti riservati.