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.