Dynamisk konteksthjelp

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.