Creazione dinamica della guida sensibile al contesto

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.