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 corrisponde 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 della destinazione e al valore degli attributi denominati.
systemProperty - true se la proprietà di sistema denominata equivale al valore specificato.
pluginState - indica se il plug-in specificato (tramite ID) deve essere installato o attivato.
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 |
---|---|---|
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. |
|
(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. |