Generalmente i plug-in forniscono funzionalità a visualizzazioni già esistenti nel workbench. Il contributo viene offerto mediante il punto di estensione org.eclipse.ui.viewActions. Questo punto di estensione consente ai plug-in di contribuire con voci di menu, sottomenu e barre degli strumenti a un menu a discesa e a una barra degli strumenti locali di una visualizzazione esistente.
Nella barra degli strumenti locale della visualizzazione del navigator è presente un elemento che diventa attivo ogni qualvolta viene selezionato un file readme. Lo stesso elemento viene visualizzatonel menu a discesa locale della visualizzazione. Queste azioni vengono mostrate perché sono fornite dal plug-in dello strumento readme mediante l'estensione viewActions.
Il contributo rilevante per plugin.xml è il seguente:
<extension
point = "org.eclipse.ui.viewActions">
<viewContribution
id="org.eclipse.ui.examples.readmetool.vc1"
targetID="org.eclipse.ui.views.ResourceNavigator">
<action id="org.eclipse.ui.examples.readmetool.va1"
label="&Readme View Extension"
menubarPath="additions"
toolbarPath="additions"
icon="icons/basic/obj16/editor.gif"
tooltip="Run Readme View Extension"
helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
enablesFor="1">
<selection class="org.eclipse.core.resources.IFile" name="*.readme"/>
</action>
</viewContribution>
</extension>
È specificato un contributo di visualizzazione con un unico id. La visualizzazione a cui viene aggiunta l'azione è specificata nel targetID. Poiché si sta fornendo un contributo al menu di visualizzazione del navigator della risorsa, oltre ai percorsi della barra del menu e di quella degli strumenti, è necessario specificare l'etichetta per la nuova azione. Per una trattazione completa dei percorsi di menu e barra degli strumenti, consultare la sezione Percorsi di menu e barre degli strumenti.
È necessario specificare anche le condizioni in cui l'azione deve essere attivata. Nel caso specifico, questa azione sarà attivata in presenza di una selezione di tipo IFile, che abbia ".readme" come estensione del file. L'azione, ad esempio, sarà attivata se si fa clic nel navigator della risorsa.
L'informazione presente nel plugin.xml è sufficiente per compilare i menu e le barre degli strumenti appropriate. Non verrà eseguito alcun codice plug-in finché l'azione non sarà effettivamente selezionata dal menu o dalla barra degli strumenti. La classe di implementazione specificata in plugin.xml deve implementare l'interfaccia IViewActionDelegate.
In questo esempio, il plug-in di readme fornisce ViewActionDelegate per implementare l'azione. L'esplorazione di questa classe mostra che essa include metodi per gestire modifiche di selezione, richiamare l'azione e ricordare per quale visualizzazione è stata creata.
L'azione avvia semplicemente una finestra di dialogo nella quale è segnalata l'esecuzione dell'azione di visualizzazione.
public void run(org.eclipse.jface.action.IAction action) {
MessageDialog.openInformation(view.getSite().getShell(),
"Readme Editor",
"View Action executed");
}
Sebbene questa azione sia semplice, si può immaginare che l'utilizzo di selezioni e finestre di dialogo più funzionali possano renderla più complessa.