Számos tevékenység-közreadást láthattunk, amely megadja a tevékenység helyének elérési útját. Nézzük meg közelebbről, hogy mit jelentenek ezek az elérési utak.
Először a menü elérési utakat tekintjük meg a munkaterület Súgó menüjének megjelenítésével.
Az új menük és menüpontok beszúrásának helye megnevezett csoportok segítségével kerül megadásra. A megnevezett csoport helyként vagy helykitöltőként képzelhető el, amelynek segítségével a menüpontok a menüsor és legördülő menü adott helyein szúrhatók be.
Az IWorkbenchActionConstants és IIDEActionConstants osztályban a munkaterület megadja az összes csoporthely nevét. (Két különböző osztályt használnak, mivel az erőforrással kapcsolatos menüpontok az általános munkaterületből kerülnek származtatásra). Minden munkaterület-menühöz a megnevezett csoportok bekerülnek a menübe azon a helyeken, ahol várható, hogy a bedolgozó új területeket szúr be.
A súgómenü alábbi leírása az IWorkbenchActionConstants osztálydefinícióból kerül adaptálásra.
Standard Help menu actions Start group - HELP_START - "start" End group - HELP_END - "end"
Az általános munkaterület-súgómenü egy "start" nevű csoportot ad meg, amelyet a "end," megnevezett csoport követ. Két csoport megadása a bedolgozók számára kicsit jobb vezérlést biztosít azon helyekhez, amelyeken a közreadott elemek a súgó menüben kerülnek pozícionálásra. Ha megad egy menüt, akkor tetszőleges számú hely adható meg.Több bővítőhely hozzáadása jobb vezérelhetőséget biztosít a közreadásokhoz, amelyek a meglévő közreadásokhoz viszonyítva jelennek meg.
A súgómenükhöz menüpontot adó bedolgozók ezen csoportnevek segítségével eldönthetik, hogy a menüpont hova kerül. Az áttekintő bedolgozó például a munkaterülethez hozzáadja az "Áttekintők..." menüt tartalmazó tevékenységkészletet. Itt látható a leírónyelv az org.eclipse.ui.cheatsheets bedolgozó plugin.xml fájljából.
<extension point="org.eclipse.ui.actionSets"> <actionSet label="%CHEAT_SHEETS" visible="true" id="org.eclipse.ui.cheatsheets.actionSet"> <action label="%CHEAT_SHEETS_MENU" class="org.eclipse.ui.internal.cheatsheets.actions.CheatSheetHelpMenuAction" menubarPath="help/helpStart" id="org.eclipse.ui.cheatsheets.actions.CheatSheetHelpMenuAction"> </action> </actionSet> </extension>
Az új súgótevékenység bekerül a súgómenü helpStart csoportjába.
Egy teljes menü elérési út egyszerűen "menünév/csoportnév." A munkaterület menüneveinek nagy része az IWorkbenchActionConstants elemben kerül megadásra. (Az erőforrással kapcsolatos menünevek az IIDEActionConstants elemben vannak megadva.) Ha a súgómenü nevét keressük ebben az osztályban, akkor azt találjuk, hogy a súgótevékenység teljes képzésű elérési útja "help/helpEnd."
Néhány menü beágyazott almenükkel rendelkezik. A hosszabb elérési utak itt fordulnak elő. Ha a súgómenü megadott egy "submenu" nevű almenüt egy "submenuStart" nevű csoporttal, akkor a tevékenység teljes képzésű menü elérési útja az új almenüben "help/submenu/submenuStart" lesz.
A fenti példa szemlélteti a felhasználói felületen megjelenő karaktersorozat külsőleg elérhetővé tételének módszerét. A külsőleg elérhetővé tett karaktersorozatok leegyszerűsítik a bedolgozó felhasználói felületének másik nyelvre lefordítását. A plugin.xml fájlokban lévő karaktersorozatok külsőleg elérhetővé tételéhez a karaktersorozatot le kell cserélni egy kulcsra (%CHEAT_SHEETS_MENU) és a plugin.properties fájlban létre kell hozni az alábbi formátumú bejegyzéseket:
CHEAT_SHEETS_MENU = Cheat Sheets...
A plugin.properties fájl lefordítható különböző nyelvekre és a plugin.xml fájlt nem kell módosítani.
A példák nagy részében eddig a példa bedolgozók által közreadott tevékenységek hozzáadásra kerültek a menük meglévő megnevezett csoportjaihoz.
Az actionSets, viewActions, editorActions és popupMenus kiterjesztési pont segítségével új menüket és csoportokat adhat meg a kiegészítésen belül. Ez azt jelenti, hogy új almenük és legördülőmenük adhatók meg, és a tevékenységek közreadhatók ezen új menükön. Ebben az esetben az új tevékenység elérési útja tartalmazza az újonnan megadott menü nevét.
Ezt az eljárást akkor láthattuk, amikor a readme eszköz egy új menüt adott meg ehhez a tevékenységkészlethez. Most, hogy a menürendszert már részletesebben megnéztük, tekintsük meg néhányszor a leírónyelvet.
<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> ...
Egy "org_eclipse_ui_examples_readmetool" nevű új menüt vettünk fel, amelynek címkéjét az "%ActionSet.name" kulcs adja meg a tulajdonságok fájlban. Ebben a menüben három megnevezett csoportot adunk meg: "slot1," "slot2" és "slot3." Ezt az új menüt hozzáadjuk a "window/additions" elérési úthoz.
Ha visszamegyünk az IWorkbenchActionConstants elemhez, akkor a javadoc fájlban láthatjuk az ablakmenü definícióját:
* <h3>Standard Window menu actions</h3> * <ul> * <li>Extra Window-like action group (<code>WINDOW_EXT</code>)</li>
Ha tovább nézzük ezt az osztálydefiníciót, akkor az alábbi kapcsolódó definíciókat fogjuk látni:
public static final String MENU_PREFIX = ""; ... public static final String M_WINDOW = MENU_PREFIX+"window"; ... public static final String MB_ADDITIONS = "additions"; // Csoport. ... public static final String WINDOW_EXT = MB_ADDITIONS; // Csoport.
Ezen információkból összerakható az elérési út az elem munkaterület "Ablak" menüjéhez adásához. A menü neve "window", és egy "additions" nevű bővítőhelyet adunk hozzá. Az új menü hozzáadásához a "window/additions" elérési utat használjuk.
A tevékenységkészlet deklarációban a "window/org_eclipse_ui_examples_readmetool/slot1" elérési út segítségével hozzáadunk egy tevékenységet az újonnan megadott menühöz.
Ugyanezen elérési út segítségével (vagy esetleg más helyek egyikével) más bedolgozók is hozzáadhatják a menühöz a saját menüjük egyikét.
A readme eszköz példában a separator attribútum segítségével azonosítjuk a csoportneveket. Ennek hatására egy elválasztóvonal jelenik meg ezen csoportok között, amennyiben tartalmaznak elemeket. Ehelyett használható a groupMarker attribútum, amennyiben a menüben elválasztó megjelenítése nélkül meg szeretnénk adni egy megnevezett csoportot a csoportok megkülönböztetése érdekében.
Az eszköztár elérési utak a menü elérési utakhoz hasonlóan működnek.
A munkaterület-eszköztár különböző bedolgozók által biztosított eszköztárakból áll, magát a munkaterületet is beleértve. Adott eszköztáron belül megnevezett csoportok és helyek találhatók, amelyek segítségével új eszköztár-elemek szúrhatók be.
A munkaterület-eszköztár alábbi leírása az IWorkbenchActionConstants osztály definícióból kerül adaptálásra.
// Munkaterület-eszköztárazonosítók public static final String TOOLBAR_FILE = "org.eclipse.ui.workbench.file" public static final String TOOLBAR_NAVIGATE = "org.eclipse.ui.workbench.navigate"; // Munkaterület-eszköztárazonosítók. Ha a csoport elejéhez kíván elemet hozzáadni, // akkor használja a GROUP azonosítót. Ha a csoport végéhez kíván elemet hozzáadni, akkor az EXT azonosítót használja. public static final String PIN_GROUP = "pin.group"; public static final String HISTORY_GROUP = "history.group"; public static final String NEW_GROUP = "new.group"; public static final String SAVE_GROUP = "save.group"; public static final String BUILD_GROUP = "build.group";
A legegyszerűbb esetben a bedolgozó közreadhat egy eszköztárelemet a saját eszköztárban. A menühöz közreadott readme eszköz tevékenységek egy eszköztár elérési utat is megadnak:
<action id="org_eclipse_ui_examples_readmetool_readmeAction" menubarPath="window/org_eclipse_ui_examples_readmetool/slot1" toolbarPath="readme" ...
Mivel nincs hivatkozás a munkaterület-eszköztár elérési utakra vagy csoportokra, a readme tevékenységek megjelennek az eszköztáron a saját csoportban. Az alábbi elérési út megadása hatására az elem a fájl eszköztárba kerül a mentés csoportban:
... <action id="org_eclipse_ui_examples_readmetool_readmeAction" menubarPath="window/org_eclipse_ui_examples_readmetool/slot1" toolbarPath="org.eclipse.ui.workbench.file/save.group" ...
Az IWorkbenchActionConstants elemben megadott elérési utakra más bedolgozók eszköztár elérési útjaiban hivatkozhatnak.
Tételezzük fel, hogy a bedolgozó azt szeretné, hogy az eszköztár-elemek jobban integrálódjanak más bedolgozó tevékenységeivel? Tekintsük meg, hogy a külső eszközök bedolgozó (org.eclipse.ui.externaltools) hogyan integrálja a tevékenységeket a hibakereső eszköztárral. A hibakereső (org.eclipse.debug.ui) az alábbi módon adja meg az eszköztár-tevékenységeket:
<extension point="org.eclipse.ui.actionSets"> <actionSet label="%LaunchActionSet.label" visible="false" id="org.eclipse.debug.ui.launchActionSet"> ... <action toolbarPath="debug" id="org.eclipse.debug.internal.ui.actions.RunDropDownAction" hoverIcon="icons/full/ctool16/run_exc.png" class="org.eclipse.debug.internal.ui.actions.RunToolbarAction" disabledIcon="icons/full/dtool16/run_exc.png" icon="icons/full/etool16/run_exc.png" helpContextId="run_action_context" label="%RunDropDownAction.label" pulldown="true"> </action> ...
A readme eszközhöz hasonlóan a hibakereső bedolgozó saját eszköztár elérési utat ad meg, amely azt jelenti, hogy az eszköztár-elemek a saját eszköztárba kerülnek a munkaterületen. Mit csinál a külső eszközök bedolgozó?
<extension point="org.eclipse.ui.actionSets"> <actionSet id="org.eclipse.ui.externaltools.ExternalToolsSet" label="%ActionSet.externalTools" visible="true"> ... <action id="org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar" definitionId= "org.eclipse.ui.externaltools.ExternalToolMenuDelegateToolbar" label="%Action.externalTools" toolbarPath="org.eclipse.debug.ui.launchActionSet/debug" disabledIcon="icons/full/dtool16/external_tools.png" icon="icons/full/etool16/external_tools.png" hoverIcon="icons/full/ctool16/external_tools.png" tooltip="%Action.externalToolsTip" pulldown="true" class="org.eclipse.ui.externaltools.internal.menu.ExternalToolMenuDelegate"> </action> </actionSet> </extension>
Figyelje meg a hibakereső tevékenységkészlet-azonosítójának használatát az eszköztár elérési útvonalban. A tevékenységkészlet-azonosító elérési útban alkalmazása előírja, hogy az eszköztárelemet a hivatkozott tevékenységkészlet által használt eszköztárban kell elhelyezni. Az eszköztárcsoportban a tevékenységkészlet-azonosítókat az elemek rendezik sorba, így a példánkban a külső eszközök tevékenység a hibakereső tevékenységek után jelenik meg.
Tevékenységkészlet eszköztárához adáskor új csoportok is megadhatók. Ha a külső eszközök bedolgozó "org.eclipse.debug.ui.launchActionSet/external" eszköztár elérési utat ad meg, akkor az eszköztáron egy új csoport kerül létrehozásra a tevékenységhez. A menükhöz hasonlóan az eszköztárcsoportok elválasztók segítségével kerülnek ábrázolásra.
Általában nem javasolt más bedolgozó menüjéhez vagy eszköztárához az elérési út plugin.xml fájlból származtatásával közreadni, hacsak nem lett külön megjelölve rendelkezésre állóként az ügyfelek számára. Elképzelhető, hogy a bedolgozó jövőbeli verziója megváltoztatja az elérési utak neveit. Két általános módszer a bedolgozó tevékenységkészlet-azonosítóinak és elérési útjainak használhatóként megjelölésére: