org.eclipse.ui.actionSets

Il plugin può fornire menu, voci di menu e voci della barra degli strumenti ai menu e alla barra degli strumenti del workbench mediante il punto di estensione org.eclipse.ui.actionSets. I contributi sono raggruppati in insiemi di azioni, che possono essere visualizzate in base alle preferenze dell'utente, per evitare che vengano mostrati contemporaneamente i contributi di tutti i plugin.

È possibile visualizzare l'insieme di azioni che hanno contribuito al workbench, selezionando Finestra->Personalizza prospettiva... dal menu del workbench. Questa opzione consente di visualizzare una finestra di dialogo in cui sono elencati tutti gli insiemi di azioni come gruppi di comandi. Un segno di spunta accanto a un gruppo di comandi indica che le azioni del menu e della barra degli strumenti sono visibili nel workbench. È possibile selezionare il nome del gruppo di comandi per visualizzare l'elenco dei menu disponibili e le azioni della barra degli strumenti a destra. L'immagine sotto riportata mostra l'elenco dei gruppi di comandi disponibili nel workbench.  (Il workbench dell'utente potrebbe avere un aspetto differente a seconda dei plugin installati e della prospettiva attiva).

Finestra di dialogo Personalizza prospettiva con l'elenco dell'insieme di azioni

Lo strumento readme utilizza un insieme di azioni per contribuire a diverse azioni di "apertura browser del readme" nel menu del workbench.  (Un'azione analoga è stata fornita al menu di scelta rapida del pannello di selezione risorse).  Il tag è il seguente:

<extension point = "org.eclipse.ui.actionSets">
	   <actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
		   label="%ActionSet.name"
		   visible="true">
		   <menu id="org_eclipse_ui_examples_readmetool"
			   label="%ActionSet.menu"
			   path="window/additions"> 
<separator name="slot1"/>
<separator name="slot2"/>
<separator name="slot3"/>
		   </menu>
		   <action id="org_eclipse_ui_examples_readmetool_readmeAction"
			   menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
			   toolbarPath="readme"
			   label="%ReadmeAction.label"
			   tooltip="%ReadmeAction.tooltip"
			   helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
			   icon="icons/ctool16/openbrwsr.png"
			   class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
			   enablesFor="1">
			   <selection class="org.eclipse.core.resources.IFile"
					name="*.readme">
			   </selection>
		   </action>
		   ...
	   </actionSet>
   </extension>

Da un'analisi dettagliata del tag sopra riportato si evincono i seguenti aspetti.   

Innanzitutto l'insieme di azioni viene dichiarato e fornito di una label.  L'etichetta "ReadMe Actions" (definita per la chiave %ActionSet.name nel file delle proprietà del plugin) viene utilizzata per visualizzare l'insieme di azioni nella finestra di dialogo sopra riportata.  Poiché visible è stato impostato su true, l'insieme di azioni inizialmente apparirà nell'elenco contrassegnato e le azioni saranno visibili nel workbench.

Il resto della dichiarazione è volto a definire le azioni e il menu nel quale devono essere visualizzate.

Nell'esempio è stato definito un menu la cui label viene visualizzata nei menu del workbench.  Il path del menu indica al workbench di posizionare il nuovo menu nello slot additions del menu Finestra.  Per una trattazione relativa a percorsi e slot di menu, consultare la sezione Percorsi di menu e barre degli strumenti.  Nell'esempio sono stati anche definiti alcuni slot nel nuovo menu che consentono di inserire le azioni in posizioni specifiche all'interno del menu.

Questo tag è sufficiente per far visualizzare il menu nel menu Finestra del workbench.

Menu Finestra del workbench con voce Editor del file readme

Successivamente, sono state definite le azioni.  

La definizione dell'azione (id, label, icon, class) è identica a quella utilizzata per viste, editor e menu di scelta rapida.  La differenza è costituita dal percorso dell'azione: in questo caso, sono stati utilizzati   menubarPath e toolbarPath.  Inizialmente era stato definito menubarPath per aggiungere l'azione a uno slot del menu definito ( "window/org_eclipse_ui_examples_readmetool/slot1").

Menu Editor del file readme con voci di menu

Successivamente, è stato definito un nuovo toolbarPath per inserire le azioni nella barra degli strumenti del workbench.  Poiché è stato definito il percorso di un nuovo strumento, "readme", il workbench ne decide la posizione in relazione ai contributi alla barra degli strumenti apportati dagli altri plugin.

Barra degli strumenti del workbench con azione readme

Quando viene selezionata dall'utente,  l'azione viene implementata dalla classe specificata nell'attributo class.  La classe dell'azione deve implementare IWorkbenchWindowActionDelegate, oppure IWorkbenchWindowPulldownDelegate se l'azione verrà visualizzata come elemento degli strumenti a discesa nella barra degli strumenti.  Poiché non si è creato un elemento di questo tipo, è stata fornita la classe WindowActionDelegate  che è simile alla classe ObjectActionDelegate.  Questa avvia la finestra di dialogo relativa alle sezioni del readme alla selezione dell'azione da parte dell'utente.  (La finestra di dialogo relativa alle sezioni verrà trattata nelle finestre di dialogo Applicazioni.)

L'azione fornisce anche le condizioni di attivazione per la voce del menu e la voce della barra degli strumenti.  Le voci del menu e della barra degli strumenti verranno attivate solo quando l'utente selezionerà un singolo (enablesFor="1") file readme (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme").  Le voci del menu e della barra degli strumenti di questa azione vengono visualizzate e attivate mediante il tag nel file plugin.xml.  Nessun codice di plugin verrà eseguito finché l'azione non verrà scelta dall'utente e class non verrà eseguita dal workbench.

Le altre due azioni saranno illustrate in seguito, nel contesto delle azioni ridestinabili.