A bedolgozók nézetei és szerkesztői általában olyan tevékenységeket valósítanak meg, amelyek szemantikailag hasonlók a meglévő munkaterület-tevékenységekhez, mint például a vágólap kivágás/másolás/beillesztés, nézet frissítés vagy tulajdonságok. A nézetek és szerkesztők előugrómenüi meglehetősen zavarók tudnak lenni, ha minden nézetnek vagy szerkesztőnek egyedi tevékenységet kell megadni ezekhez a tevékenységekhez és a menükben megadásukhoz.
Ezen probléma megoldása érdekében a munkaterület áttervezhető (globálisnak is nevezik) tevékenységeket ad meg, amelyeket tetszőleges nézet vagy szerkesztő kezelhet. Ha a nézet vagy szerkesztő aktív, akkor ennek kezelője futni fog, amikor a felhasználó kiválasztja a tevékenységet a munkaterület-menüből vagy -eszköztárból. Ennek segítségével a nézetek vagy szerkesztők megoszthatják a munkaterület-menühelyeket a szemantikailag hasonló tevékenységekhez.
IWorkbenchActionConstants dokumentálja az összes munkaterület-tevékenységet és az áttervezhető tevékenységeket globálisként jelöli meg. Az alábbiakban látható például a Tulajdonságok tevékenység definíciója.
public static final String PROPERTIES = "properties"; // Global action.
Az alábbi táblázat összefoglal néhány általánosabb áttervezhető tevékenységet, amelyeket a nézetek vagy szerkesztők valósítanak meg:
Fájl menü | Szerkesztés menü | Navigáció menü | Projekt menü | |
nézetek | áthelyezés átnevezés frissítés tulajdonságok |
belépés ugrás az erőforrásra szinkronizálás a szerkesztővel vissza előre felfelé tovább előző |
megnyitás bezárás összeépítés újraépítés |
|
szerkesztők | visszaállítás nyomtatás |
keresés | ||
nézetek és szerkesztők | kivágás másolás beillesztés törlés minden kijelölés visszavonás újra |
Az áttervezhető tevékenységek a RetargetAction segítségével kerülnek létrehozásra. Az alábbi részlet a WorkbenchActionBuilder elemből származik.
propertiesAction = createGlobalAction(IWorkbenchActionConstants.PROPERTIES, "file", false);
A createGlobalAction metódus megjeleníti, hogy a RetargetAction pontosan hogy jön létre.
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; }
Áttervezhető tevékenység létrehozásakor a munkaterület hozzárendeli az azonosítót a tevékenységhez és az alapértelmezett címkéhez. Két áttervező tevékenységstílus van. RetargetAction egyszerűen lehetővé teszi, hogy a nézet vagy szerkesztő újból megvalósítson egy tevékenységet. LabelRetargetAction segítségével a nézetek és szerkesztők visszaállíthatják a tevékenység címkéjét. Ez a menücímke specializáltabbá tétele esetén hasznos, mint például a Visszavonás tevékenység átcímkézése Gépelés visszavonása tevékenységre.
Most már tudjuk, hogy a munkaterület hogyan adja meg a céltevékenységeket. Következőnek azt nézzük meg, hogy a nézet vagy szerkesztő hogyan biztosíthat egy megvalósítást az áttervezhető tevékenységhez. Ezt a globális tevékenységkezelő beállítása végzi el.