Přecílitelné akce

Pohledy a editory modulu plug-in mají společné, že implementují akce sémanticky podobné stávajícím akcím pracovní plochy, jako např. vyjmutí/kopírování/vložení do schránky, obnovení zobrazení nebo vlastnosti.  Rozevírací nabídka pro pohledy a editory může být poněkud nepřehledná, pokud každý pohled a editor musí pro tyto operace definovat jedinečné akce a zahrnout je do svých nabídek. 

Pro vyřešení tohoto problému pracovní plocha definuje přecílitelné (globální) akce, se kterými je možno pracovat ve kterémkoli pohledu nebo editoru.  Pokud je pohled nebo editor aktivní, jeho popisovač poběží, pokud uživatel zvolí akci z nabídky nebo panelu nástrojů pracovní plochy.  To umožňuje pohledům a editorům sdílet prostor nabídky pracovní plochy pro sémanticky podobné akce.

IWorkbenchActionConstants dokumentuje všechny akce pracovní plochy a označuje přecílitelné akce jako globální.  Zde je například definice akce Vlastnosti.

public static final String PROPERTIES = "properties"; // Globální akce. 

Následující tabulka shrnuje některé z běžnějších přecílitelných akcí, které jsou implementovány pohledy a editory:

  Nabídka Soubor Nabídka Upravit Nabídka Navigovat Nabídka Projekt
pohledy přesunout
přejmenovat
obnovit
vlastnosti
  přejít do
přejít na prostředek
synchronizovat s editorem
zpět
vpřed
nahoru
další
předchozí
otevřít
zavřít
sestavit
znovu sestavit
editory vrátit zpět
vytisknout
hledat    
pohledy a editory   vyjmout
kopírovat
vložit
odstranit
vybrat vše
zpět
opakovat
   

Přecílitelné akce se vytvářejí pomocí akce RetargetAction.  Následující úsek pochází z WorkbenchActionBuilder.

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

Metoda createGlobalAction přesně zobrazuje, jakým způsobem provést akci 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;
}

Při vytváření přecílitelné akce pracovní plocha přiřazuje id pro akci a výchozí štítek.  Pamatujte, že existují dva styly akcí přecílení.  RetargetAction jednoduše umožňuje pohledu nebo editoru znovu implementovat akci.  LabelRetargetAction také umožňuje pohledům a editorům resetovat štítek akce.   Díky tomuto postupu je možno štítek nabídky více specifikovat, např. přejmenování akce Zpět na Zpět psaní.  

Nyní je zřejmé, jakým způsobem pracovní plocha definuje akce přecílení.  Podívejme se dále na způsob, jakým váš pohled nebo editor může poskytovat implementaci pro přecílitelnou akci.  To se provádí nastavením globálního popisovače akce.