Váš modul plug-in může do nabídek a panelu nástrojů pracovní plochy vkládat nabídky, položky nabídek a panel nástrojů s použitím bodu rozšíření org.eclipse.ui.actionSets. Pro snížení zmatku, který by jinak vznikl samostatným zobrazením příspěvků do nabídek jednotlivých modulů plug-in, se příspěvky seskupují do akčních sad, které lze zobrazovat uživatelskou předvolbou.
Výběrem Okno->Přizpůsobit perspektivu... v nabídce pracovní plochy můžete zobrazit informaci o akčních sadách vložených do vaší pracovní plochy. Tato volba zobrazí dialogové okno se seznamem akčních sad jako skupin příkazů. Znak zaškrtnutí u skupiny příkazů znamená, že se dotyčné akce nabídek a panelu nástrojů zobrazují v pracovní ploše. Volbou názvu skupiny příkazů vpravo zobrazíte seznam dostupných akcí nabídek a panelu nástrojů. Následující obrázek uvádí seznam skupin příkazů dostupných ve vaší pracovní ploše. (Vaše pracovní plocha se může poněkud odlišovat v závislosti na instalovaných modulech plug-in a na aktivní perspektivě.)
Nástroj README používá určitou akční sadu ke vkládání různých akcí "Otevřít prohlížeč README" do nabídky pracovní plochy. (Podobnou akci jsme vložili do rozevírací nabídky navigátoru prostředků.) Dále uvádíme markup:
<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>
.Je toho zde celkem dost. Věnujme se nejprve první akci.
Nejprve je deklarována akční sada a zadán štítek. Štítek "Akce ReadMe" (definovaný pro klíč %ActionSet.name v souboru vlastností modulu plug-in) se používá k zobrazení akční sady v dialogovém okně vyobrazeném výše. Protože jsme nastavili visible na hodnotu true, pracovní plocha na počátku zobrazí v seznamu akčních sad zaškrtnutou akční sadu a dále bude zobrazovat akce.
Zbytek deklarace akční sady se věnuje definování nabídky, ve které se akce budou zobrazovat, a dále definici samotných akcí.
Definujeme nabídku, jejíž štítek se bude zobrazovat v nabídkách pracovní plochy. Cesta nabídky obsahuje informaci, podle které pracovní plocha umístí novou nabídku do pozice Dodatky nabídky Okno. (Výklad cest a pozic nabídek viz Cesty nabídky a panelu nástrojů.) Rovněž definujeme určitý počet pozic naší nové nabídky tak, aby na určitá místa v naší nabídce bylo možné vkládat akce.
Tento markup sám o sobě postačuje k zobrazení nabídky v pracovní plochy Okno.
Poté definujeme samotné akce.
Definice akce (id, label, icon, class) je podobná definicím jiných akcí, které jsme viděli v pohledech, editorech a rozevíracích nabídkách. Zaměřme se na rozdíl: kam se má akce dostat? K zadání jejího umístění používáme parametry menubarPath a toolbarPath. Nejprve definujeme menubarPath pro přidání akce do již definované pozice v nabídce ( "window/org_eclipse_ui_examples_readmetool/slot1").
Poté definujeme novou cestu toolbarPath pro vložení našich akcí do panelu nástrojů pracovní plochy. Po definování nové cesty panelu nástrojů, "README", pracovní plocha určí umístění relativně k ostatním příspěvkům do panelu nástrojů modulem plug-in.
Co se stane po volbě akce uživatelem? Akce je implementována třídou stanovenou atributem class. Akce class musí implementovat IWorkbenchWindowActionDelegate nebo IWorkbenchWindowPulldownDelegate, má-li být na panelu nástrojů zobrazována jako rozbalovací položka. Protože nevytváříme rozbalovací položku panelu nástrojů, zadáme WindowActionDelegate. Tato třída je obdobou ObjectActionDelegate. Po volbě akce uživatelem spouští dialogové okno oddílů README. (Výklad k dialogovému okně uvádíme vDialogová okna aplikace.)
Akce rovněž zahrnuje podmínky pro zpřístupnění své položky nabídky a svého panelu nástrojů. Položky nabídky a panelu nástrojů se zpřístupní pouze v případě, že je zvolen jediný (enablesFor="1") soubor README (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme"). Zobrazí se nabídka této akce a položka panelu nástrojů a markup v souboru plugin.xml tyto položky aktivuje. Dokud uživatel nezvolí akci a pracovní plocha nespustí třídu akce, neprovede se žádná část kódu modulu plug-in.
Dalším dvěma akcím se budeme věnovat později v kontextu přecílitelných akcí.