Le classi delle azioni consentono di definire comandi dell'utente indipendentemente dalla loro presentazione nell'interfaccia utente. Questo offre la flessibilità per modificare la presentazione di un'azione nel proprio plug-in senza modificare il codice che esegue il comando. Le classi di contribuzione vengono utilizzate per gestire le voci dell'interfaccia utente che rappresentano i comandi. L'utente non programma nelle classi di contribuzione, ma potrà visualizzarle in alcune delle API del workbench e di JFace.
Un'azione (IAction) rappresenta un comando che può essere attivato dall'utente finale. Le azioni sono generalmente associate a pulsanti, voci di menu e voci delle barre degli strumenti.
Sebbene le azioni non si inseriscano autonomamente nell'interfaccia utente, dispongono di proprietà orientate all'interfaccia utente, ad esempio, testo delle descrizioni comandi, testo delle etichette e un'immagine. Ciò consente ad altre classi di costruire widget per la presentazione dell'azione.
Quando l'utente attiva l'azione nell'interfaccia utente, il metodo di esecuzione dell'azione viene richiamato per eseguire il lavoro. Un modello comune del metodo run consiste nell'effettuare una query delle selezioni del workbench e utilizzare gli oggetti selezionati. Un altro modello consiste nell'avviare una procedura guidata o una finestra di dialogo quando viene scelta un'azione.
L'interfaccia IAction non dovrebbe essere implementata direttamente dall'utente. Invece, si dovrebbe dividere in sottoclassi la classe Action. Esaminare le sottoclassi di questa classe per visualizzare molti dei modelli comuni per le azioni. Il codice seguente implementa l'azione "Informazioni su". Questa è una delle azioni più semplici presenti sul workbench.
public void run() { new AboutDialog(workbenchWindow.getShell()).open(); }
In precedenza sono state descritte le interfacce del workbench IViewActionDelegate e IEditorActionDelegate. Queste interfacce vengono utilizzate quando si forniscono azioni di vista o azioni di editor al workbench. I delegati dell'azione del workbench vengono inizializzati con un riferimento alla vista o all'editor associati. Con queste informazioni, i delegati possono esplorare la pagina o la finestra del workbench, accedendo alle selezioni o a qualsiasi altra informazione necessaria per eseguire l'azione.
L'utente implementerà le proprie classi di azioni ogni volta che desidera definire un comando nel plug-in. Se si forniscono azioni ad altre viste ed editor, l'utente implementerà delegati di azione.
Una voce di contributo (IContributionItem) rappresenta la porzione dell'interfaccia utente di un'azione. Più specificamente, rappresenta una voce che viene fornita a una risorsa condivisa dell'interfaccia utente, ad esempio un menu o una barra degli strumenti.
Le voci di contributo sono in grado di riempire uno specifico widget SWT con la voce SWT adatta a rappresentare il contributo.
L'utente non deve preoccuparsi della creazione di una voce di contributo mentre fornisce azioni all'interfaccia utente del workbench. Questa operazione viene eseguita automaticamente quando il workbench crea voci dell'interfaccia utente per le azioni definite dall'utente.
Un gestore dei contributi (IContributionManager) rappresenta un insieme delle voci di contributo che verranno presentate nell'interfaccia utente. È possibile aggiungere e inserire voci di contributo utilizzando id di contributo denominati in modo da sistemare le voci nell'ordine appropriato. È anche possibile ricercare voci in base all'id e rimuovere singole voci.
Ogni implementazione di IContributionManager è in grado di riempire uno specifico widget SWT con le relative voci. JFace fornisce gestori di contributi per menu (IMenuManager), barre degli strumenti (IToolBarManager) e righe di stato (IStatusLineManager).
Come sviluppatore di plug-in, l'utente non ha bisogno di implementare queste interfacce, ma i riferimenti ad alcuni di questi gestori saranno visibili nei metodi API.