Oltre all'associazione statica di widget e ID di contesto, è possibile fornire queste informazioni
dinamicamente per una funzione di guida sensibile al contesto più dinamica. Il sistema della guida
utilizza gli Id per individuare il corrispondente oggetto
org.eclipse.help.IContext. La nuova vista Guida
tiene traccia dell'attivazione delle diverse parti del workbench (viste e editor) e verifica se si adattano
all'interfaccia org.eclipse.help.IContextProvider. In
caso positivo, la vista utilizzerà il fornitore di contesto per individuare l'oggetto IContext
e
ricevere da questo le informazioni richieste. Questo oggetto può essere in cache o creato sul momento.
Le parti del workbench che vogliono creare l'oggetto di contesto dinamicamente devono adattarsi
all'oggetto IContextProvider.class
come chiave:
public Object getAdapter(Class key) { if (key.equals(IContextProvider.class)) { return new MyContextProvider(); } return super.getAdapter(key); }
L'interfaccia fornitore di contesto richiede l'implementazione di tre metodi:
public class MyContextProvider implements IContextProvider { int getContextChangeMask() { return NONE; } IContext getContext(Object target) { return myContext; } String getSearchExpression(Object target) { return null; } }
Se la maschera di modifica contesto restituisce NONE
, l'oggetto di contesto deve essere
fornito quando si attiva la parte del workbench. Se viene restituito SELECTION
, è necessario
fornire l'oggetto di contesto che è sensibile alla selezione corrente nella parte. Ogni volta che il
fornitore di selezione della parte attiva l'evento di modifica selezione, al fornitore di contesto verrà
chiesto di fornire l'oggetto di contesto.
Facoltativamente, può essere fornita l'espressione di ricerca per la guida dinamica.
Altrimenti, verrà utilizzata con buoni risultati una combinazione del nome parte e del nome prospettiva.