Azioni ridestinabili

Generalmente visualizzazioni ed editor di un plug-in implementano le azioni semanticamente simili a quelle esistenti nel workbench, come taglia/copia/incolla, aggiorna visualizzazione o visualizza proprietà.  Il menu di scelta rapida per visualizzazioni o editor potrebbe diventare piuttosto confuso se ogni visualizzazione o editor dovesse definire azioni univoche per queste operazioni e dovesse includerle nel proprio menu. 

Per risolvere questo problema, il workbench definisce azioni ridestinabili (denominate anche globali) che possono essere gestite da qualsiasi visualizzazione o editor.  Quando una visualizzazione o un editor sono attivi, il relativo gestore verrà eseguito nel momento in cui l'utente sceglie un'azione dal menu o dalla barra degli strumenti del workbench.  In questo modo, per azioni semanticamente simili, visualizzazioni ed editor possono condividere lo spazio disponibile sul workbench.

IWorkbenchActionConstants documenta le azioni del workbench e denota le azioni ridestinabili come globali.  Qui di seguito, come esempio, è riportata la definizione dell'azione Proprietà.

public static final String PROPERTIES = "properties"; // Global action. 

La tabella seguente fa un riepilogo delle azioni ridestinabili più comuni implementate da visualizzazioni ed editor:

  Menu File Menu modifica Menu Esplora
visualizzazioni sposta
rinomina
aggiorna
proprietà
  vai in
indietro
avanti
su
successivo
precedente
editor ripristina
stampa
trova  
visualizzazioni ed editor   taglia
copia
incolla
elimina
seleziona tutto
annulla
ripeti
 

Le azioni ridestinabili vengono create utilizzando RetargetAction.  Il frammento di codice di seguito riportato è tratto da WorkbenchActionBuilder.

 propertiesAction = createGlobalAction(IWorkbenchActionConstants.PROPERTIES, "file", false); 

Il metodo createGlobalAction mostra esattamente come creare una RetargetAction.

private RetargetAction createGlobalAction(String id, String actionDefPrefix, boolean labelRetarget) {
	RetargetAction action;
	if (labelRetarget) {
		action = new LabelRetargetAction(id, WorkbenchMessages.getString("Workbench." + id)); 
	}
	else {
		action = new RetargetAction(id, WorkbenchMessages.getString("Workbench." + id)); 
	}
	...
	return action;
}

Quando si crea un'azione ridestinabile, il workbench assegna l'id per l'azione e l'etichetta predefinita.  Si noti che esistono due stili per le azioni ridestinabili.  RetargetAction consente semplicemente a una visualizzazione o a un editor di reimplementare un'azione.  LabelRetargetAction consente a visualizzazioni ed editor anche di reimpostare l'etichetta dell'azione.   Questa operazione è utile per rendere più specifica l'etichetta del menu, come avviene, ad esempio, rietichettando l'azione Annulla in Annulla immissione.  

In questa sezione è stato esaminato il modo in cui le azioni ridestinabili vengono definite dal workbench.  Nella prossima verrà trattato il modo in cui una visualizzazione o un editor possono fornire un'implementazione per un'azione ridestinabile.  Questa operazione viene eseguita attraverso l'impostazione di un gestore di azione globale.

Copyright
IBM Corp. e altri 2000,2002.