I tillegg til å knytte widgeter og kontekst-IDer til hverandre statisk, kan du oppgi informasjonen
dynamisk for en mer dynamisk kontekstavhengig hjelpefunksjonalitet. Hjelpesystemet bruker kontekst-IDer til å lokalisere det samsvarende
org.eclipse.help.IContext-objektet. Den nye Hjelp-visningen sporer aktivering av
delene i arbeidsbenken (visninger og redigeringsprogrammer) og kontrollerer om de er tilpasset
org.eclipse.help.IContextProvider-grensesnittet. I så fall bruker visningen
kontekstleverandøren til å lokalisere IContext-objektet og hente den
nødvendige informasjonen derfra. Objektet kan hurtigbufres eller opprettes umiddelbart.
Hvis delene i arbeidsbenken skal opprette kontekstobjektet dynamisk, må de tilpasses
IContextProvider.class-objektet som en nøkkel:
public Object getAdapter(Class key) {
if (key.equals(IContextProvider.class)) {
return new MyContextProvider();
}
return super.getAdapter(key);
}
Kontekstleverandørgrensesnittet krever implementering av tre metoder:
public class MyContextProvider implements IContextProvider {
int getContextChangeMask() {
return NONE;
}
IContext getContext(Object target) {
return myContext;
}
String getSearchExpression(Object target) {
return null;
}
}
Hvis kontekstendringsmasken returnerer NONE, må kontekstobjektet oppgis
når den aktuelle delen i arbeidsbenken aktiveres. Hvis SELECTION returneres,
må du oppgi et kontekstobjekt som er følsomt for det gjeldende valget i delen. Hver gang leverandøren av den valgte delen starter
en valgendringshendelse, vil kontekstleverandøren bli bedt om å oppgi kontekstobjektet.
Alternativt kan søkeuttrykk for den dynamiske hjelpen oppgis. Det kan som regel også brukes en kombinasjon av delnavnet og perspektivnavnet.
Merk: I tillegg til å bruke kontekstleverandører (eller alternativet), kan du bruke XML-annotasjoner til å filtrere emner i konteksthjelp.