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.