Espressioni booleane e filtri di azione

Quando un plugin fornisce un'azione all'interfaccia utente del workbench utilizzando uno dei punti di estensione di menu, può specificare le condizioni in base alle quali la voce di menu viene attivata (o visualizzata) nel menu.  Oltre a fornire semplici condizioni di attivazione, ad esempio conteggi delle selezioni e classi delle selezioni, i plugin possono utilizzare espressioni booleane per attivare un'azione.

Espressioni booleane

Le espressioni booleane possono contenere semplici operatori booleani (NOT, AND, OR) ed espressioni predefinite in grado di valutare le seguenti condizioni:

Ad esempio, i frammenti riportati di seguito rappresentano espressioni di attivazione che è possibile utilizzare per un'azione ipotetica di un insieme di azioni:

<action id="org.eclipse.examples.actionEnablement.class" 
       label="Red Element" 
       menubarPath="additions" 
       class="org.eclipse.examples.actionEnablement.ObjectTestAction"> 
       <enablement> 
	 <and>
	   <objectClass name="org.eclipse.examples.actionEnablement.TestElement"/> 
           <objectState name="name" value="red"/> 
	 </and>
       </enablement> 
</action> 
<action id="org.eclipse.examples.actionEnablement.property" 
       label="Property" 
       menubarPath="additions" 
       class="org.eclipse.examples.actionEnablement.PropertyTestAction"> 
       <enablement> 
           <systemProperty name="MyTestProperty" value="puppy"/> 
       </enablement> 
</action> 
<action id="org.eclipse.examples.actionEnablement.pluginState" 
       label="Installed" 
       menubarPath="additions" 
       class="org.eclipse.examples.actionEnablement.PluginTestAction"> 
       <enablement> 
           <pluginState id="x.y.z.anotherPlugin" value="installed"/> 
       </enablement> 
</action> 

Per ulteriori esempi di questo tipo di espressioni e per una descrizione completa dell'XML, fare riferimento alla documentazione sui punti di estensione riportata di seguito.

Nella tabella seguente sono elencati i punti di estensione che aggiungono azioni e sono illustrate le modalità di utilizzo delle espressioni booleane e degli attributi di tag XML per l'attivazione.

Nome del punto di estensione

Attributi che influenzano l'attivazione

Espressioni booleane

viewActions,

editorActions,

actionSets

enablesFor - specifica il conteggio delle selezioni che è necessario raggiungere per attivare l'azione

selection class - la classe che gli oggetti selezionati devono suddividere in classi secondarie o implementare per attivare l'azione

selection name - un filtro con caratteri jolly che può essere applicato agli oggetti selezionati.

visibility - un'espressione booleana.  Controlla se la voce di menu è visibile nel menu.

enablement - un'espressione booleana.  Controlla se la voce di menu è abilitata nel menu.  È necessario specificare l'attributo enablesFor e selection class e name prima di applicare l'espressione di attivazione.

popupMenus

(Solo per i contributi relativi agli oggetti.)

objectClass - specifica la classe che gli oggetti selezionati devono suddividere in classi secondarie o implementare

(Per i contributi relativi agli oggetti e ai visualizzatori)

enablesFor - specifica il conteggio delle selezioni che è necessario raggiungere per attivare l'azione

selection class - la classe che gli oggetti selezionati devono suddividere in classi secondarie o implementare per attivare l'azione

selection name - un filtro con caratteri jolly che può essere applicato agli oggetti selezionati.

 

(Per i contributi relativi agli oggetti e ai visualizzatori)

visibility - un'espressione booleana.  Controlla se la voce di menu è visibile nel menu.

enablement - un'espressione booleana.  Controlla se la voce di menu è abilitata nel menu.  È necessario specificare l'attributo enablesFor e selection class e name prima di applicare l'espressione di attivazione.

Utilizzo di objectState con tipi di contenuto

La capacità di definire i tipi di contenuto (fare riferimento alla sezione Tipi di contenuto) può essere unita alle espressioni booleane per definire condizioni molto specifiche di abilitazione o visibilità, basate sul tipo di contenuto di una risorsa. Ad esempio, il frammento di seguito riportato costituisce una voce di menu a comparsa visibile solo se il contenuto del file selezionato corrisponde ai tipi di contenuto specifici del plugin.

<extension point="org.eclipse.ui.popupMenus">
   <objectContribution
      id="com.example.objectContributions"
      objectClass="org.eclipse.core.resources.IFile"
      nameFilter="*.xml">
         <visibility>
            <or>
               <objectState
                  name="contentTypeId"
                  value="com.example.employeeRecordContentType"/>
               <objectState
                  name="contentTypeId"
                  value="com.example.customerRecordContentType"/>
            </or>
         </visibility>
         <action id="com.example.action1"
         ...
L'attributo contentTypeId può essere utilizzato in un'espressione objectState per verificare il tipo di contenuto del file xml selezionato. Ciò consente ad un plugin di applicare una verifica del contenuto molto specifica, prima di abilitare o di visualizzare le azioni del menu relative a specifici tipi di file. Per ulteriori dettagli sull'estensione del tipo di contenuto, fare riferimento alla sezione Tipi di contenuto.

Informazioni particolari.