Áttervezhető tevékenységek

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.