Förutom att statiskt koppla gränssnittskontroller och sammanhangsberoende IDn, är detmöjligt att ge den informationen dynamiskt, vilket ger en mer dynamisk sammanhangsberoende
hjälp. Hjälpsystemet utnyttjar sammanhangsberoende IDn till att hitta motsvarande
org.eclipse.help.IContext-objekt. Den nya hjälpvyn spårar aktivering av
arbetsmiljöns delar (vyer och redigeringsprogram) och kontrollerar om de anpassas
till gränssnittet
org.eclipse.help.IContextProvider. Om de gör det används sammanhangsprovidern av
vyn till att hitta IContext
-objektet och hämta informationen som behövs
där. Det objektet kan lagras i cache eller skapas under arbetets gång.
Delar av arbetsmiljön där försök görs att skapa det sammanhangsberoende objektet dynamiskt borde anpassas till IContextProvider.class
-objektet som nyckel:
public Object getAdapter(klassnyckel) { if (key.equals(IContextProvider.class)) { return new MyContextProvider(); } return super.getAdapter(nyckel); }
Gränssnittet för sammanhangsprovidern förutsätter att tre metoder implementeras:
public class MyContextProvider implements IContextProvider { int getContextChangeMask() { return NONE; } IContext getContext(Object target) { return myContext; } String getSearchExpression(Object target) { return null; } }
Om en sammanhangsberoende ändringsmask ger NONE
i retur, måste ett sammanhangsberoende objekt tillhandahållas när arbetsmiljödelen aktiveras. Om SELECTION
ges i retur, måste du tillhandahålla ett sammanhangsberoende objekt som är känsligt för delens aktuella urval. Varje gång en delurvalsprovider
aktiverar en urvalsändringshändelse ombeds sammanhangsprovidern att tillhandahålla ett sammanhangsberoende objekt.
Alternativt kan ett sökuttryck för den dynamiska hjälpen tillhandahållas. Annars kommer en kombination av delnamnet och perspektivnamnet att användas med, i de flesta fall, goda resultat.
Obs! Du kan dessutom (eller alternativt) använda XML-anteckningar till att filtrera avsnitt i sammanhangsberoende hjälp (förutom att använda kontextleverantörer).