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.