Création dynamique d'une aide contextuelle

Outre l'association statique de commandes et d'ID de contexte, il est possible de fournir ces informations dynamiquement pour une aide contextuelle plus dynamique. Le système d'aide utilise des ID de contexte pour localiser l'objet org.eclipse.help.IContext correspondant. La nouvelle vue Aide suit l'activation des parties plan de travail (vues et éditeurs) et vérifie si elles s'adaptent à l'interface org.eclipse.help.IContextProvider. Si c'est le cas, la vue utilise le fournisseur de contexte pour localiser l'objet IContext et en obtenir les informations requises. Cet objet peut être placé dans la mémoire cache ou créé au fil de l'eau.

Les parties plan de travail qui souhaitent créer l'objet de contexte de façon dynamique doivent s'adapter à l'objet IContextProvider.class en tant que clé :

public Object getAdapter(Class key) {
	if (key.equals(IContextProvider.class)) {
		return new MyContextProvider();
	}
	return super.getAdapter(key);
}

L'interface du fournisseur de contexte requiert l'implémentation de trois méthodes :

public class MyContextProvider implements IContextProvider {
	int getContextChangeMask() {
		return NONE;
	}
	IContext getContext(Object target) {
		return myContext;
	}
	String getSearchExpression(Object target) {
		return null;
	}
}

Si le masque de modification de contexte renvoie NONE, l'objet de contexte doit être fourni lorsque la partie plan de travail est activée. Si SELECTION est renvoyé, vous devez fournir un objet de contexte tributaire de la sélection en cours dans la partie. A chaque fois que le fournisseur de sélection de la partie met en application un événement de changement de sélection, le fournisseur de contexte est invité à fournir un objet de contexte.

L'expression de recherche de l'aide dynamique peut être fournie en option. Sinon, une combinaison du nom de partie et du nom de perspective est utilisée avec de bons résultats dans la plupart des cas.