A kontextussúgó dinamikus létrehozásása

A kontextusazonosítók és felületi elemek statikus társításán felül lehetséges ezen információkat dinamikusan biztosítani egy még dinamikusabb helyzetérzékeny súgó képességéért. A súgórendszer a kontextusazonosítókat használja a megfelelő org.eclipse.help.IContext objektum megkeresésére. Az új Súgónézet követi a munkaterület részeinek (nézetek és szerkesztők) aktiválását és ellenőrzi, hogy illeszkednek-e az org.eclipse.help.IContextProvider felülethez. Ha igen, a nézet a kontextus szolgáltató használatával megkeresi az IContext objektumot és lekéri belőle a szükséges információkat. Ez az objektum lehet gyorsítótárazott, vagy létrehozható menet közben.

Azoknak a munkaterület-részeknek, amelyek dinamikusan kívánják létrehozni a kontextus objektumot, az IContextProvider.class objektumhoz kell kulcsként illeszkedniük:

public Object getAdapter(Class key) {
	if (key.equals(IContextProvider.class)) {
		return new MyContextProvider();
	}
	return super.getAdapter(key);
}

A kontextus szolgáltató felület három metódus megvalósítását követeli meg:

public class MyContextProvider implements IContextProvider {
	int getContextChangeMask() {
		return NONE;
	}
	IContext getContext(Object target) {
		return myContext;
	}
	String getSearchExpression(Object target) {
		return null;
	}
}

Ha a kontextusmódosítási maszk NONE értéket ad vissza, a kontextusobjektumot a munkaterület-rész aktiválásakor kell biztosítani. Ha a visszaadott érték a SELECTION, akkor Önnek kell a kontextusobjektumot biztosítani, amely érzékeny a rész aktuális kijelölésére. Minden alkalommal, amikor a kijelölésszolgáltató elindít egy kijelölés módosítási eseményt, a kontextusszolgáltató kontextusobjektum biztosítására lesz kérve.

Opcionálisan keresőkifejezés biztosítható a dinamikus súgóhoz. Egyébként a rész és a perspektíva nevének kombinációja kerül felhasználásra, a legtöbb esetben jó eredménnyel.