A bedolgozó az org.eclipse.ui.actionSets kiterjesztési pont segítségével menüket, menüpontokat és eszköztárelemeket adhat a munkaterület-menükhöz és -eszköztárakhoz. A zűrzavar csökkentése érdekében, amelyet az okoz, hogy minden bedolgozó menükiegészítései egyszerre jelennek meg, a kiegészítések tevékenységkészletekbe vannak csoportosítva, amelyek a felhasználói beállítás által láthatóvá tehetők.
Megtekintheti, hogy az Ablak->Perspektíva személyre szabása... munkaterület-menüből kiválasztásával a munkaterületen mely tevékenységkészletek kerültek biztosításra. Ez a lehetőség megjelenik a párbeszédablakban, amely a tevékenységkészleteket parancscsoportokként jeleníti meg. Egy parancscsoport jelölése azt jelenti, hogy a menüpontok és eszköztárelemek láthatóak lesznek a munkaterületen. A rendelkezésre álló menü- és eszköztár-tevékenységek listájának megjelenítéséhez kiválaszthatja a parancscsoport nevét. Az alábbi ábra a munkaterületen rendelkezésre álló parancscsoportok listáját jeleníti meg. (A munkaterület másképp is kinézhet attól függően, hogy mely bedolgozók kerültek telepítésre és mely perspektíva aktív.)
A readme eszköz egy tevékenységkészletet használ számos különböző "Readme böngésző megnyitása" tevékenység munkaterület-menük biztosításához. (Egy hasonló tevékenységet adtunk közre az erőforrás-navigátor előugró menüjén.) A leírónyelv következik:
<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>
Itt nagyon sok minden történik! Egyszerre egy lépést nézünk meg, csak az első tevékenységre figyelve.
Először a tevékenységkészlet kerül megadásra és egy címke. A "ReadMe tevékenységek" címke (az %ActionSet.name kulcshoz megadva a bedolgozó tulajdonságfájljában) megjeleníti a tevékenységkészletet a fent megjelenített párbeszédablakban. Mivel a láthatóságot igazra állítottuk, a munkaterületen a tevékenységkészlet kezdetben be van állítva és a tevékenységek láthatók lesznek.
A tevékenységkészlet deklaráció további részével a menü megadásakor foglalkozunk, amelyben a tevékenységek megjelennek, és a tevékenységek megadásakor.
Egy olyan menüt adunk meg, amelynek címkéje megjelenik a munkaterület-menükön. A menü elérési útja utasítja a munkaterületet, hogy az új menüt az ablak menü kiegészítések helyén jelenítse meg. (A menü elérési utak és helyek leírását a Menü és eszköztár elérési utak rész tartalmazza.) Néhány helyet az új menüben is megadunk, így ez a tevékenység a menü egy adott helyére szúrható be.
Ez a leírónyelv magában elég ahhoz, hogy a menü megjelenjen a munkaterület Ablak menüjében.
Következőnek magukat a tevékenységeket adjuk meg.
A tevékenységdefiníció (azonosító, címke, ikon, osztály) a nézetek, szerkesztők és előugró menük egyéb tevékenységeihez hasonló. Most a különbségekre koncentrálunk: hova kerül a tevékenység? A hely jelzéséhez a menubarPath és toolbarPath elemet használjuk. Először a menubarPath elemet adjuk meg az éppen megadott tevékenység menü egyik helyéhez adásához ( "window/org_eclipse_ui_examples_readmetool/slot1").
Ezután egy új toolbarPath elemet adunk meg a tevékenységek munkaterület eszköztárba beszúrásához. Mivel egy új elérési utat adtunk meg - "readme", - a munkaterület eldönti, hogy hova kerül más bedolgozó eszköztár kiegészítéseihez képest.
Mi történik, ha a felhasználó kiválasztja a tevékenységet? Az osztály által megvalósított tevékenység az class attribútumban kerül megadásra. A tevékenység class elemének meg kell valósítania az IWorkbenchWindowActionDelegate vagy IWorkbenchWindowPulldownDelegate elemet, ha a tevékenység legördülőmenüként kerül megjelenítésre az eszközsoron. Mivel nem legördülő eszközelemet hozunk létre, a WindowActionDelegate elemet biztosítjuk. Ez az osztály az ObjectActionDelegate elemhez hasonló. Ez elindítja a readme szakaszok párbeszédablakot, amikor a felhasználó kiválasztja a tevékenységet. (A szakaszok párbeszédablak leírását az Alkalmazás párbeszédablakok rész tartalmazza.)
A tevékenység engedélyezi a feltételeket a menüpontokhoz és eszköztárelemekhez. A menü- és eszköztárelemek csak akkor kerülnek engedélyezésre, ha egy (enablesFor="1") readme fájl (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") kiválasztásra kerül. Ezen tevékenység menü- és eszköztárelemei a plugin.xml fájlban megjelennek és engedélyezésre kerülnek a leírónyelv tulajdonságai által. Egyik bedolgozókód sem kerül végrehajtásra addig, amíg a felhasználó ki nem választja a tevékenységet és a munkaterület futtatja a tevékenységosztályt.
A két másik tevékenységet később nézzük meg az áttervezhető tevékenységek kontextusában.