Oprócz statycznego powiązania widgetów i identyfikatorów kontekstu istnieje możliwość
dynamicznego udostępniania tych informacji w celu zapewnienia dynamicznej pomocy
kontekstowej. Do znalezienia odpowiedniego obiektu
org.eclipse.help.IContext system pomocy używa identyfikatorów kontekstu. Nowy
widok pomocy śledzi aktywowanie części środowiska roboczego (widoków i edytorów) i
sprawdza, czy można je zaadoptować do interfejsu
org.eclipse.help.IContextProvider.
Jeśli tak, widok użyje dostawcy kontekstu w celu
znalezienia obiektu IContext i pobrania z niego niezbędnych informacji.
Obiekt ten może być przechowywany w pamięci podręcznej lub tworzony podczas pracy.
Części środowiska roboczego dynamicznie tworzące obiekt kontekstu powinny być możliwe do
zaadoptowania jako klucz obiektu IContextProvider.class:
public Object getAdapter(Class key) {
if (key.equals(IContextProvider.class)) {
return new MyContextProvider();
}
return super.getAdapter(key);
}
Interfejs dostawcy kontekstu wymaga implementacji trzech metod:
public class MyContextProvider implements IContextProvider {
int getContextChangeMask() {
return NONE;
}
IContext getContext(Object target) {
return myContext;
}
String getSearchExpression(Object target) {
return null;
}
}
Jeśli maska zmiany kontekstu zwróci wartość NONE, to w przypadku aktywowania
części środowiska roboczego będzie konieczne udostępnienie obiektu kontekstu.
Jeśli zostanie zwrócona wartość SELECTION, konieczne będzie udostępnienie obiektu
kontekstu uwzględniającego bieżący wybór w części. Zawsze, gdy dostawca wyboru części wyzwoli
zdarzenie zmiany wyboru, do dostawcy kontekstu zostanie wysłane żądanie o udostępnienie obiektu kontekstu.
Opcjonalnie dla pomocy dynamicznej można określić wyszukiwane wyrażenie.
W przeciwnym razie zostaną użyte nazwa części i nazwa perspektywy, co zwykle zapewnia
zwrócenie odpowiednich wyników wyszukiwania.