Criação Dinâmica de Ajuda de Contexto

Além de associar widgets e ids de contexto estatisticamente, é possível fornecer essas informações dinamicamente para obter um recurso de ajuda contextual mais dinâmico. O sistema de ajuda utiliza Ids de contexto para localizar o objeto org.eclipse.help.IContext correspondente. A nova visualização da Ajuda rastreia a ativação das partes do workbench (visualizações e editores) e verifica se elas se adaptam à interface org.eclipse.help.IContextProvider. Se elas se adaptarem, a visualização utilizará o provedor de contexto para localizar o objeto IContext e obter as informações necessárias dele. Esse objeto pode ser armazenado em cache ou criado dinamicamente.

As partes do workbench que desejam criar o objeto de contexto dinamicamente devem adaptar-se ao objeto IContextProvider.class como uma chave:

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

A interface do provedor de contexto requer a implementação de métodos de árvore:

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

Se a máscara de alteração do contexto retornar NONE, o objeto de contexto precisará ser fornecido quando a parte do workbench for ativada. Se SELECTION for retornado, você precisará fornecer objeto de contexto que seja relativo à seleção atual na parte. Toda vez que o provedor de seleção de parte disparar um evento de alteração de seleção, o provedor de contexto será solicitado a fornecer o objeto de contexto.

Opcionalmente, a expressão de procura para a ajuda dinâmica pode ser fornecida. Caso contrário, uma combinação do nome da parte e do nome da perspectiva será utilizada com bons resultados na maioria dos casos.