Quando un plug-in 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 plug-in possono utilizzare espressioni booleane per attivare un'azione.
Le espressioni booleane possono contenere semplici operatori booleani (NOT, AND, OR) ed espressioni predefinite in grado di valutare le seguenti condizioni:
objectClass - true se ogni oggetto nella selezione suddivide in classi secondarie o implementa la classe.
objectState - true se l'attributo denominato equivale al valore specificato. IActionFilter fornisce il supporto necessario nella valutazione dell'espressione. Un filtro di azioni elabora in maniera dinamica i criteri di attivazione per un'azione in base alla selezione di destinazione e al valore degli attributi denominati.
systemProperty - true se la proprietà di sistema denominata equivale al valore specificato.
pluginState - indica se il plugin specificato (tramite ID) deve essere installato o attivato
Ad esempio, i frammenti riportati di seguito rappresentano espressioni di attivazione che è possibile utilizzare in un'azione ipotetica di una serie 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 alle espressioni di azioni .
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 |
enablesFor - specifica il conteggio delle selezioni che è necessario raggiungere per attivare l'azione classe selezioni - la classe che gli oggetti selezionati devono suddividere in classi secondarie o implementare per attivare l'azione nome selezioni - un filtro con caratteri jolly che può essere applicato agli oggetti selezionati. |
attivazione - un'espressione booleana. E necessario specificare la classe selezioni, il nome e enablesFor prima di applicare l'espressione di attivazione. |
editorActions |
enablesFor - specifica il conteggio delle selezioni che è necessario raggiungere per attivare l'azione classe selezioni - la classe che gli oggetti selezionati devono suddividere in classi secondarie o implementare per attivare l'azione nome selezioni - un filtro con caratteri jolly che può essere applicato agli oggetti selezionati.
|
attivazione - un'espressione booleana. E necessario specificare la classe selezioni, il nome e enablesFor 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 (Solo per i contributi relativi agli oggetti e ai visualizzatori) enablesFor - specifica il conteggio delle selezioni che è necessario raggiungere per attivare l'azione classe selezioni - la classe che gli oggetti selezionati devono suddividere in classi secondarie o implementare per attivare l'azione nome selezioni - un filtro con caratteri jolly che può essere applicato agli oggetti selezionati.
|
visibilità - un'espressione booleana. E necessario specificare la classe selezioni, il nome e enablesFor prima di applicare l'espressione di attivazione.
|
actionSets |
enablesFor - specifica il conteggio delle selezioni che è necessario raggiungere per attivare l'azione classe selezioni - la classe che gli oggetti selezionati devono suddividere in classi secondarie o implementare per attivare l'azione nome selezioni - un filtro con caratteri jolly che può essere applicato agli oggetti selezionati.
|
attivazione - un'espressione booleana. E necessario specificare la classe selezioni, il nome e enablesFor prima di applicare l'espressione di attivazione.
|