工作台提供在建置複雜的使用者介面時,有非常多類別和介面可用。 而非常幸運地,如果只要做些簡單的事,您不需要完全瞭解它們。 首先,我們要檢視工作台使用者介面所外曝的一些概念以及隱藏著的對應結構。
當我們使用工作台一詞時,它泛指「啟動平台時所開啟的視窗」。現在,我們要深入一些,瞭解組成工作台的部份視覺元件。
在這項討論的其餘部份中,當我們使用工作台一詞時,我們是指工作台視窗(IWorkbenchWindow)。 工作台視窗是工作台中最上層的視窗。 它是功能表列、工具列、狀態行、捷徑列及頁面所在的頁框。 您通常不需要進行工作台視窗的程式設計。 只要知道它在那裡就行了。
附註:您可以開啟多個工作台視窗;然而每一個工作台視窗都是一個自足的編輯器和檢視畫面的世界, 所以我們只要將焦點放在單一工作台視窗就行了。
從使用者的角度來看,工作台含有檢視畫面和編輯器。另外還有少數其他類別,用來實作工作台視窗。
在工作台視窗中,您會找到一個依次含有各部份的頁面(IWorkbenchPage)。頁面是各部份之分組的實作機制。 您通常不需要進行這個頁面的程式設計,但您會在程式設計和除錯的環境定義中見到它。
視景提供工作台頁面內的其他組織層。 視景定義適當的檢視畫面集成,它們的佈置,以及適合於給定的使用者作業的動作。 當使用者在作業之間移動時,可以在視景之間切換。從實作的觀點來看, 使用者的作用中視景可以控制哪些檢視畫面顯示在工作台頁面,以及它們的位置和大小。視景中的變更並不會影響到編輯器。
檢視畫面和編輯器是我們略過實作細節而進入某些一般外掛程式設計之處。 當您新增視覺化元件到工作台時,您必須決定要實作檢視畫面或編輯器。 您要如何決定呢?
不論任任何一種情況,您都要根據一般生命週期來建置您的檢視畫面或編輯器。
在這整個生命週期中,會從項目包含其中的工作台頁面發動事件,將檢視畫面和編輯器的開啟、啟動、取消啟動和關閉通知給有興趣的各方。
似乎很簡單?可能是。 這就是工作台檢視畫面和編輯器的美麗之處。 它們只是 Widget 保留區,可以視需要而很簡單或很複雜。 我們先前在建置 Hello World 檢視畫面時,見到比較簡單的檢視畫面。 現在讓我們再看一次我們所解釋的正在進行的動作。
package org.eclipse.examples.helloworld; import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Label;import org.eclipse.swt.SWT; import org.eclipse.ui.part.ViewPart; public class HelloWorldView extends ViewPart { Label label; public HelloWorldView() { } public void createPartControl(Composite parent) { label = new Label(parent, SWT.WRAP); label.setText("Hello World"); } public void setFocus() { // 將焦點設在我的 Widget。對標籤而言, // 這沒有什麼意義,但對於較複雜的 Widget 集而言, // 您就要決定將焦點放在哪個 Widget 上。 } }
請注意,我們不需要實作 dispose() 方法,因為我們沒有執行任何動作,只是在 createPartControl(parent) 方法中建立標籤而已。 如果我們已配置過任何 UI 資源,如影像或字型,就會在這裡刪除它們。 由於我們繼承了 ViewPart 類別,我們也繼承了 dispose() 的「不執行任何動作」的實作。