Descrizione: questo punto di estensione consente di aggiungere azioni al menu e alla barra degli strumenti delle visualizzazioni registrate da altri plug-in. Ogni visualizzazione dispone di un menu a discesa, che viene attivato facendo clic nella zona superiore destra. Altri plug-in possono poi aggiungere sottomenu e azioni a questo menu o alla barra degli strumenti di una visualizzazione. Chi utilizza una visualizzazione ha la precedenza nella definizione del contenuto di queste aree. Le ulteriori aggiunte dei plug-in costituiscono un elemento opzionale.
Tag di configurazione:
<!ELEMENT viewContribution (menu | action)*>
<!ATTLIST viewContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>id - un identificativo univoco che può essere utilizzato per fare riferimento a questo contributo. targetID - l'identificativo univoco della visualizzazione (come specificato nel registro) nella quale viene fornito il contributo
<!ELEMENT action (selection)* (enablement)?>name - il nome del separatore a cui si può in seguito fare riferimento come ultima posizione nel percorso dell'azione. Pertanto, i separatori fungono da gruppi denominati in cui è possibile aggiungere azioni.
In Eclipse 2.0, è possibile utilizzare un elemento enablement per definire l'abilitazione dell'azione. Per ulteriori informazioni sull'utilizzo dell'elemento enablement, consultare actionExpressions.html.I criteri di abilitazione per l'estensione di un'azione sono inizialmente definiti da enablesFor, selection e enablement. Tuttavia, dopo aver creato l'istanza di gestione dell'azione, è possibile controllare lo stato di abilitazione dell'azione utilizzando direttamente il relativo metodo selectionChanged.
Azioni ed etichette possono contenere caratteri speciali che codificano i tasti di scelta i quali vengono specificati mediante il carattere e commerciale ('&') davanti al carattere di scelta rapida selezionato nel testo traducibile. Dal momento che il carattere e commerciale non è supportato nelle stringhe XML, utilizzare il carattere &.
Se due o più azioni sono fornite a un menu o una barra degli strumenti mediante una singola estensione, le azioni verranno visualizzate in ordine inverso rispetto a come sono elencate nel file plugin.xml. Questo comportamento non era francamente intenzionale. E stato, tuttavia, scoperto dopo che la versione delle API della piattaforma Eclipse era diventata definitiva. La modifica del comportamento adesso danneggerebbe tutti i plug-in basati sul comportamento esistente.
Esempi:
Di seguito viene riportato un esempio dell'estensione azioni di visualizzazione (notare i sottoelementi e il modo in cui vengono utilizzati gli attributi):
<extension point="org.eclipse.ui.viewActions">
<viewContribution
id="com.xyz.xyzViewC1"
targetID="org.eclipse.ui.views.ResourceNavigator">
<menu id="com.xyz.xyzMenu"
label="XYZ Menu"
path="additions">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ"
enablesFor="1"/>
<selection class="org.eclipse.core.resources.IFile" name="*.java">
</action>
</viewContribution>
</extension>
Nell'esempio sopra riportato, l'azione specificata viene abilitata per una sola selezione (l'attributo enablesFor). Inoltre, ogni oggetto di questa selezione deve implementare l'interfaccia specificata (IFile) e deve essere un file Java. Possono essere specificati più elementi selection, da cui è possibile effettuare la selezione.
Informazione API: il valore dell'attributo class deve essere un nome completo di una classe Java che implementi org.eclipse.ui.IViewActionDelegate. Questa interfaccia viene caricata per ultima, in modo da evitare il caricamento dell'intero plug-in prima del necessario. Essa estende org.eclipse.ui.IActionDelegate e aggiunge un metodo supplementare che consente al delegato l'inizializzazione con l'istanza di visualizzazione in cui interviene.
Implementazione fornita: ogni visualizzazione viene normalmente fornita con alcuni elementi standard sul menu a discesa e nella barra degli strumenti locale. Le modifiche dei plug-in vengono aggiunte agli elementi standard. E consigliabile pubblicare gli identificativi di azione relativi a una visualizzazione in un'interfaccia pubblica. Ad esempio, le azioni e i gruppi principali della finestra del workbench vengono definiti in org.eclipse.ui.IWorkbenchActionConstants.