v
工作台喜好設定讓使用者指定檢視畫面是應該按一下或按兩下來開啟他們的物件。
為什麼關於這個喜好設定的解除條款未在所有檢視畫面中發生作用?因為外掛程式提供的檢視畫面必須明確地支援實作中的喜好設定。
可利用建立 SWT 控制項並撰寫標準 SWT 程式碼實作來檢視畫面,或使用 JFace 檢視程式來處理低階的詳細資料。接受按一下喜好設定可以在任一層次完成。開啟其他物件的大部分檢視畫面呈現一個結構化的、像清單一樣的檢視畫面。現在我們將專注於那種類型的檢視畫面。 如果您的檢視畫面用不同方式展示物件,可能是使用 SWT 層次概念來支援按一下。
如果您使用 JFace 清單導向的檢視程式來呈現物件,支援按一下是直接明確的。 要在檢視畫面中觸發開啟項目時,使用 addOpenListener,而不要使用 addDoubleClickListener。開啟接聽器接受現 行工作台喜好設定,當指定的滑鼠事件發生時,啟動開啟事件。
您可能希望為「non-open」動作使用 addDoubleClickListener,例如按兩下以展開樹狀結構中的項目。
JFace 提供 public 程式類別,OpenStrategy, 來處理 SWT 控制層次的按一下和按兩下的後勤支援。利用工作台喜好設定對話框配置 OpenStrategy, 所以它接受現行工作台的開啟喜好設定。事實上,JFace 檢視器使用此類別實作接聽器的接聽器。
您必須建立 OpenStrategy 以及與 SWT 控制項的關聯。OpenStrategy 將連結適當的事件並依據使用者喜好設定翻譯。您的工作是新增開啟的接聽器至實作程式碼以供開啟的策略中。這樣一來,您受到關於 Widget 事件觸發開啟事件知識的防護。
OpenStrategy openHandler = new OpenStrategy(control); openHandler.addOpenListener(new IOpenEventListener() { public void handleOpen(SelectionEvent e) { // 處理開啟事件的程式碼。 ... } }
開啟的其他工作台喜好設定(選取滑鼠橫越,使用方向鍵開啟)也由 OpenStrategy 處理。 這表示「對的事」將發生,如果您使用 JFace 檢視器或 OpenStrategy 類別來實作開啟行為的話。
處理開啟事件時,您應該使用 OpenStrategy.activateOnOpen() 來決定 已開啟的編輯器是否應依預設來啟動。啟動編輯器切換從檢視畫面至編輯器的焦點,在按一下模式中,是特別令人混淆而且不宜的。