動態建立環境定義說明

除了靜態建立小組件與環境定義 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);
}

環境定義提供者介面需要實作三個方法:

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

如果環境定義變更遮罩傳回了 NONE,當工作台組件啟動時,需要提供環境定義物件。如果傳回 SELECTION, 您需要提供與組件中現行選擇相關的環境定義物件。每次組件選項提供者發動選擇變更事件時, 就會要求環境定義提供者提供環境定義物件。

您可選擇性地提供動態說明的搜尋表示式。 否則,在大部分情況下,使用組件名稱和視景名稱的組合即足以產生良好的結果。