コンテキスト・ヘルプの動的な作成

ウィジェットとコンテキスト ID を静的に関連付ける だけでなく、より動的なコンテキスト・ヘルプ機能に この情報を動的に提供することができます。ヘルプ・ システムは、コンテキスト ID を使用して、一致する org.eclipse.help.IContext オブジェクトを見つけ ます。新しい「ヘルプ」ビューは、ワークベンチ・ パーツ (ビューおよびエディター) の活動化を トラッキングして 、 org.eclipse.help.IContextProvider インターフェースに適応するかどうかをチェックします。 適応する場合、ビューはコンテキスト・プロバイダーを 使用して、IContext オブジェクトを 見つけ、そこから必要な情報を取得します。この オブジェクトは、キャッシュすることも、即座に作成する こともできます。

コンテキスト・オブジェクトを動的に作成する ワークベンチ・パーツは 、IContextProvider.class オブジェクトに キーとして適応する必要があります。

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

コンテキスト・プロバイダー・インターフェースは 、3 つのメソッドを実装する必要があります。

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

コンテキスト変更マスクが NONE を 戻す場合、ワークベンチ・パーツがアクティブになった 際に、コンテキスト・オブジェクトを提供する必要が あります。SELECTION が戻される場合、 パーツの現在の選択に依存するコンテキスト・ オブジェクトを提供する必要があります。パーツ選択 プロバイダーが選択変更イベントを発行するたびに、 コンテキスト・プロバイダーはコンテキスト・ オブジェクトの提供を求められます。

オプションで、ダイナミック・ヘルプの検索文字列が提供され ます。 そうでない場合には、パーツ名とパースペクティブ名の 組み合わせを使用すると、多くの場合よい結果が得られ ます。