A tevékenység a funkció logikai csoportosítása, amely adott típusú feladat köré van rendezve. Java szoftver fejlesztése például a platform felhasználói által általánosan végrehajtott tevékenységek, és a JDT számos UI kiegészítést ad meg (nézetek, szerkesztők, perspektívák, beállítások, stb.) , amelyek csak ezen tevékenység végrehajtásakor hasznosak. Mielőtt megtekintenénk a tevékenység megadásának eljárásait, tekintsük meg, hogy hogyan segítenek az UI "összevisszaságának megszüntetésében".
A tevékenység alapelve kitételre kerül a felhasználó számára, de elképzelhető, hogy az új felhasználó számára nem nyilvánvaló. Ha a tevékenység engedélyezve van a platformon, akkor a tevékenységhez rendelt UI kiegészítések megjelennek. Ha a tevékenység le van tiltva a platformon, akkor az UI közreadások nem jelennek meg. A felhasználók a Munkaterület>Képességek beállításlap segítségével szükség szerint engedélyezhetik és letiltatják a tevékenységeket. (A tevékenységekre a felhasználói felületen "képességekként" hivatkozunk annak ellenére, hogy az alkalmazás programozási felületen a tevékenység kifejezést használjuk).
Bizonyos felhasználói műveletek aktiválási pontként működnek a tevékenység engedélyezéséhez. Új Java projekt létrehozása aktiválhatja a Java fejlesztési tevékenység engedélyezését. Ily módon a felhasználók számára új funkciók vannak kitéve, amennyiben szükségük van rá, és fokozatosan megtanulják a rendelkezésre álló tevékenységeket és a felhasználói felületre gyakorolt hatásukat. Amikor a felhasználó először elindítja a platformot, elvárás lehet, hogy a lehető legtöbb tevékenység legyen letiltva, így az alkalmazás a lehető legegyszerűbb lesz. Az üdvözlőoldalon megadott lehetőségek segítségével meghatározható, hogy mely tevékenységeket kell engedélyezni.
(A Perspektívák részben) Láthattuk, hogy a perspektívák hogyan rendszerezik feladatokba a különböző nézetelrendezéseket és tevékenységhalmazokat. Miért van szükségünk tevékenységekre? A perspektívák és tevékenységek hasonló feladatokat adnak meg, a fő különbség, hogy a bedolgozó UI kiegészítések hogyan vannak hozzájuk rendelve. A kiegészítés definíciójának kiterjesztésében az UI kiegészítések társítva vannak a perspektívákkal. Azaz a bedolgozók felelősek annak meghatározásáért, hogy a nézetek és tevékenységkészletekhez mely perspektívákhoz tartoznak. A bedolgozók saját perspektívákat is megadhatnak. Ha a perspektíva nem aktív, akkor a felhasználó a perspektívához rendelt nézeteket és tevékenységeket olyan parancsokon keresztül érheti el, mint például a Megjelenítés nézet.
A tevékenység egy magasabb szervezési szint. Az egyéni UI kiegészítések nem tudnak a tevékenységekről, és nem hivatkoznak a kiterjesztésdefiníciókban lévő tevékenységekre. A tevékenységeket magasabb szinten kell beállítani, mint például a platformintegráció/konfiguráció vagy a terméktelepítés. Az egyéni bedolgozók jellemzően nem adnak meg új aktivitásokat, hacsak a bedolgozó nem a rendszerintegrátor által megadott rendszerszintű bedolgozó. Egy jellemző példahelyzetben a rendszerintegrátor határozza meg, hogy a funkció hogyan van tevékenységekbe csoportosítva, és melyek vannak alapértelmezés szerint engedélyezve. A tevékenységek a tevékenység-mintakötések segítségével vannak az UI kiegészítésekhez rendelve, a minták pedig a bedolgozók által megadott UI kiegészítések azonosítójával kerülnek egyeztetésre. Egy példa segít ezen alapelvek szemléltetésében.
A tevékenységek az org.eclipse.ui.activities kiterjesztési pont segítségével kerülnek megadásra. Tekintsünk meg annak egyszerűsített változatát, hogy az Eclipse SDK bedolgozó hogyan ad meg két tevékenységet - egyet Java szoftver fejlesztéséhez és egy másikat a bedolgozók fejlesztéséhez:
<extension point="org.eclipse.ui.activities"> <activity name="Java Activity" description="Developing Java Software" id="org.eclipse.javaDevelopment"> </activity> <activity name="Plug-in Activity" description="Developing Eclipse Plug-ins" id="org.eclipse.plugInDevelopment"> </activity> ...
A tevékenységekhez egy név és leírás van rendelve, amely megjeleníthető a felhasználó számára, amikor a felhasználó engedélyezi és letiltja a tevékenységeket, vagy egyéb módon jelenít meg a tevékenységgel kapcsolatos információkat. A tevékenység azonosítóját a mintakötések és a tevékenységek közötti egyéb kapcsolatok megadásakor használják. Eldönthetjük például, hogy az egyik tevékenység egy másikat igényel.
<activityRequirementBinding activityId="org.eclipse.plugInDevelopment" requiredActivityId="org.eclipse.javaDevelopment"> </activityRequirementBinding>
A követelménykötés szerint a bedolgozófejlesztési tevékenység csak akkor engedélyezhető, ha a Java fejlesztési tevékenység engedélyezve van. Kapcsolódó tevékenységek szintén köthetők kategóriákhoz, amelyek a tevékenység kezelésekor jelennek meg a felhasználó számára.
<category name="Development" description="Software Development" id="org.eclipse.categories.developmentCategory"> </category> <categoryActivityBinding activityId="org.eclipse.javaDevelopment" categoryId="org.eclipse.categories.developmentCategory"> </categoryActivityBinding> <categoryActivityBinding activityId="org.eclipse.plugInDevelopment" categoryId="org.eclipse.categories.developmentCategory"> </categoryActivityBinding>
A kategóriacsoportok a kapcsolódó fejlesztési tevékenységek együttesen. Ez a kategória akkor jelenik meg a felhasználó számára, amikor a felhasználó kézzel beállítja a tevékenységeket.
Az UI kiegészítésekhez mintaillesztéssel rendelhetők tevékenységek. A tevékenység mintakötésekben használt mintaillesztés a reguláris kifejezések java.util.regex csomagjában vannak leírva. A munkaterület által használt minták két részből állnak. Az első rész a bedolgozó azonosítóját használja, amely közreadja az UI kiterjesztést. A második rész az az azonosító, amelyet maga a bedolgozó használt a kiegészítés megadásakor (amely az azonosító részeként tartalmazhatja a bedolgozóazonosítót). Az alábbi formátum használt:
plug-in-identifier + "/" + local-identifierAz alábbi tevékenység-mintakötés szerint a JDT bedolgozóazonosítóból (org.eclipse.jdt.*) származó kiegészítés a helyi azonosítótól függetlenül hozzá van rendelve a Java fejlesztési tevékenységhez (.*).
<activityPatternBinding activityId="org.eclipse.javaDevelopment" pattern="org\.eclipse\.jdt\..*/.*"> </activityPatternBinding>A következő kötés specifikusabb. Azt adja meg, hogy a JDT magban (org.eclipse.jdt.core) megadott javanature nevű kiegészítés a Java fejlesztési tevékenységhez van hozzárendelve.
<activityPatternBinding activityId="org.eclipse.javaDevelopment" pattern="org\.eclipse\.jdt\.core/javanature"> </activityPatternBinding>Ahogy láthatja, a tevékenységminta-kötések hozzárendelhetők egy adott tevékenységek kiegészítéseinek nagy csoportjához, vagy egy tevékenység nagyon specifikus kiegészítéseihez. A tevékenységek az alábbi kiegészítésekre vannak hatással:
A munkaterület (bedolgozó azonosító + helyi azonosító) által használt megállapodás lehetővé teszi az egyszerű kötést a bedolgozókhoz, és a bedolgozó azonosítónak nem kell követnie az UI kiegészítőazonosítók elnevezési gyakorlatait. A tevékenység alkalmazás programozási felülettel közvetlenül együttműködő bedolgozók szabadon használhatják saját formátumaikat a kiegészítések azonosításához és ezen nevek mintaillesztéséhez.
A tevékenységek ugyanazon mintaillesztési sémával kerülnek társításra a súgókiegészítésekhez, mint az UI kiegészítések. Az azonosító második része (a helyi azonosító) jelzi a tartalomjegyzék (TOC) fájl nevét. Az alábbi tevékenység mintakötés például hozzárendeli a JDT bedolgozók (org.eclipse.jdt.*) által közreadott összes TOC fájlt a Java fejlesztési tevékenységhez:
<activityPatternBinding activityId="org.eclipse.javaDevelopment" pattern="org\.eclipse\.jdt\..*/.*"> </activityPatternBinding>Ha a Java fejlesztési tevékenység le van tiltva, akkor a JDT bedolgozók által közreadott súgókönyvek vagy egyéb részkönyvek (amelyhez a TOC fájlok csatlakoznak, vagy a JDT könyvek által csatolt) nem jelennek meg a súgó felhasználói felületen abban az esetben sem, ha különböző bedolgozó adta közre. Ezen könyvekben megadott témakörök sem jelennek meg a keresési eredményekben. Abban az esetben, ha a JDT TOC fájlok nem kerültek megjelenítésre elsődleges TOC fájlokként, hanem egy másik TOC fájlból van csatolva a könyvben részfaként megjelenítéshez, akkor a JDT tevékenység letiltása hatással van az részfák elrejtésére. A tartalmazó könyv kevesebb témakör megadásához jelenik meg a felhasználói felületen.
Speciálisabb kötés segítségével a bedolgozókból tevékenységek rendelhetők a kiválasztott TOC fájlokhoz, amelyek több TOC adnak közre a súgórendszerhez. Az alábbi tevékenység-mintakötés hozzárendeli a "Példák" TOC fájlt a Java fejlesztési példák tevékenységhez.
<activityPatternBinding activityId="org.eclipse.javaDevelopmentExamples" pattern="org\.eclipse\.jdt\.doc\.isv\.topics_Samples.xml"> </activityPatternBinding>Ilyen mintakötéssel a Java fejlesztési példák tevékenység letiltása elrejti a "Példák" részt a "JDT bedolgozó fejlesztési kézikönyv" könyvből.
A munkaterülettevékenység-támogatás egy alkalmazás programozási felületet tartalmaz a megadott tevékenységek kezeléséhez és az engedélyezett állapot módosításához. A legtöbb bedolgozót nem befolyásolja ez az API, de hasznos olyan funkció megvalósításánál, amelynek segítségével a felhasználók kezelhetik a tevékenységeket, vagy az adott tevékenységet engedélyező aktiválási pontok megvalósításánál. Feltételeztük, hogy a tevékenységeket az alkalmazás programozási felületen keresztül kezelő bedolgozó tisztában van az adott termék tevékenységeinek beállítási módjával. A munkaterület maga például az API segítségével aktiválja a tevékenységek engedélyezését, mint például a Java fejlesztés. Megtekintjük, hogy a munkaterület hogyan használja az általános tevékenység alkalmazás programozási felületet az aktiválók megvalósításához.
Az összes tevékenység központja a munkaterületen az IWorkbenchActivitySupport. A tevékenység támogatja a tandem működést egy IActivityManager elemmel. A bedolgozók lekérhetik a tevékenységtámogatás-példányt a munkaterületről, és a tevékenységkezelőt innen.
IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport(); IActivityManager activityManager = workbenchActivitySupport.getActivityManager();Az alábbi részlet engedélyezi a Java fejlesztési tevékenységet (ha még nincs engedélyezve). Az aktiváló egy egyszerűsített változatát jeleníti meg.
... //a felhasználó végrehajtott egy Javával kapcsolatos műveletet. Engedélyezi a Java aktivitást. Set enabledActivityIds = new HashSet(activityManager.getEnabledActivityIds()); if (enabledIds.add("org.eclipse.javaDevelopment")) workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds);
IActivityManager megad egy protokollt az összes megadott tevékenység- és kategóriaazonosító lekéréséhez, valamint a társított IActivity vagy ICategory lekéréséhez egy adott azonosítóhoz. Ezen objektumok segítségével az alkalmazás programozási felületen átvizsgálható a tevékenység vagy kategória definíciója, mint például a mintaillesztés lekérése vagy követelménykötések. A figyelők bejegyezhetők a tevékenységkezelőn vagy magukon a tevékenységeken illetve kategóriákon az adott tevékenység definíciójának vagy magának a tevékenységkezelőnek a változásának észleléséhez. További információkért tekintse meg a org.eclipse.ui.activities csomagot.