高階支援(按一下)

「一般喜好設定」可讓使用者指定在按一下或按兩下視圖時,是否應該開啟視圖的物件。

一般「開啟模式」喜好設定,其中包含喜好設定並非在所有視圖中都有效的免責聲明

為什麼免責聲明要提及這個喜好設定的不會在所有視圖中發生作用?因為外掛程式提供的視圖必須明確地支援實作中的喜好設定。

可利用建立 SWT 控制項並撰寫標準 SWT 程式碼實作來視圖,或使用 JFace 檢視器來處理低階的詳細資料。接受按一下喜好設定可以在任一層次完成。開啟其他物件的大部分視圖呈現一個結構化的、像清單一樣的視圖。現在我們將專注於那種類型的視圖。 如果您的視圖用不同方式展示物件,可能是使用 SWT 層次概念來支援按一下。

在 JFace 檢視器中按一下

如果您使用 JFace 清單導向的檢視器來呈現物件,支援按一下是直接明確的。 要在視圖中觸發開啟項目時,使用 addOpenListener,而不要使用 addDoubleClickListener。開啟接聽器接受現 行工作台喜好設定,當指定的滑鼠事件發生時,啟動開啟事件。

您可能希望為「non-open」動作使用 addDoubleClickListener,例如按兩下以展開樹狀結構中的項目。

在 SWT 控制項中按一下

JFace 提供 OpenStrategy 這個公用程式類別, 以處理在 SWT 控制層中按一下和按兩下的底層機制。  OpenStrategy 是由「一般喜好設定」對話框來配置,所以它接受現行的工作台開啟喜好設定。事實上,JFace 檢視器使用這個類別實作接聽器的接聽器。

您必須建立 OpenStrategy 以及與 SWT 控制項的關聯。OpenStrategy 將連結適當的事件並依據使用者喜好設定翻譯。您的工作是新增開啟的接聽器至實作程式碼以供開啟的策略中。這樣一來,您受到關於小組件事件觸發開啟事件知識的防護。

OpenStrategy openHandler = new OpenStrategy(control);
openHandler.addOpenListener(new IOpenEventListener() {
	public void handleOpen(SelectionEvent e) {
	// 處理開啟事件的程式碼。
	...
	}
}

開啟的其他工作台喜好設定(選取浮動說明,使用方向鍵開啟)也由 OpenStrategy 處理。 這表示「對的事」將發生,如果您使用 JFace 檢視器或 OpenStrategy 類別來實作開啟行為的話。

在開啟時啟動編輯器

處理開啟事件時,您應該使用 OpenStrategy.activateOnOpen() 來決定 已開啟的編輯器是否應依預設來啟動。啟動編輯器切換從視圖至編輯器的焦點,在按一下模式中,是特別令人混淆而且不宜的。