在沒有使用使用者介面或其他架構的一般舊 Java 中,"Hello World" 的外觀如何我們都知道。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello
World");
}
}
在 Eclipse 平台環境中這個舊標準會有什麼變化? 我們不把 Hello World 當做自行包含的程式,而是將它改換成平台延伸的角色。因 為我們要對世界打招呼,所以需要瞭解如何延伸工作台來包含我們的問候語。
更深入平台使用者介面元件時,我們將徹底檢視您可以延伸及自訂工作台 UI 的各種 方法。 現在讓我們從其中一個最簡單的工作台延伸開始 - 檢視畫面。
您可以將工作台視窗視為顯示不同視覺化組件的頁框。 這些組件屬於兩個主要種類:檢視畫面和編輯器。以後我們會查看編輯器。 檢視畫面提供關於在工作台中使用者使用的部份物件的資訊。 當使用者在工作台選取不同物件時,檢視畫面往往變更它們的內容。
以我們的 hello world 外掛程式來說,我們會實作自己的檢視畫面,以 "Hello World" 來歡迎使用者。
套件 org.eclipse.ui 和它的子套件包含那些定義工作台使用者介面 (UI) API 的公用介面。 許多這些介面都有預設實作類別,您可以延伸這些類別來對系統提供簡單的修正。 在 hello world 範例中,我們會延伸工作台檢視畫面以提供一個打招呼的標籤。
這個重要介面是 IViewPart, 它定義必須實作才能提供檢視畫面給工作台的方法。 類別 ViewPart 提供這個介面的預設實作。 在 nutshell 中,檢視畫面組件負責建立顯示檢視畫面所需要的小組件。
工作台中的標準檢視畫面通常會顯示關於使用者已選取或正在瀏覽的物件的部份資訊。 檢視畫面依據工作台發生的動作更新它們的內容。 在我們的案例中,我們只打招呼,所以檢視畫面很簡單。
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() {
// 設定焦點到我的小組件。以標籤而言,這
// 沒有什麼意義,但對於更複雜的小組件,
// 您應該決定是哪一個成為焦點。
}
}
此檢視畫面組件建立一些小組件,在 createPartControl 方法中這些小組件會 代表該組件。 在這個範例中,我們建立 SWT 標籤並對它設定 "Hello World" 文字。
我們已完成編碼部份!我們可以編譯新類別(要記得確認在 IDE 或編譯程 式環境下可以看見平台 JAR 檔,您才能夠編譯外掛程式),但是我們仍必須瞭解如何執 行新的檢視畫面。
我們的新檢視畫面應該如下:
我們如何新增這個檢視畫面到平台?
我們需要通知平台我們想要提供檢視畫面。 這是以延伸 org.eclipse.ui.views 延伸點來完成。 我們提供處理檔案 plugin.xml 來登錄延伸,該檔案說明外掛程式,包括它 的程式碼的位置以及要新增的延伸項目。
<?xml version="1.0" ?>
<plugin
name="Hello World Example"
id="org.eclipse.examples.helloworld"
version="1.0"
provider-name="Object Technology International, Inc.">
<requires>
<import
plugin="org.eclipse.ui" />
</requires>
<runtime>
<library
name="helloworld.jar" />
</runtime>
<extension point="org.eclipse.ui.views">
<category
id="org.eclipse.examples.helloworld.hello"
name="Hello" />
<view
id="org.eclipse.examples.helloworld.helloworldview"
name="Hello Greetings"
category="org.eclipse.examples.helloworld.hello"
class="org.eclipse.examples.helloworld.HelloWorldView" />
</extension>
</plugin>
在這個檔案中,我們定義外掛程式的名稱、ID、版本和提 供者名稱。
我們也列示必要的外掛程式。 因為我們在外掛程式中使用工作台和 SWT API,所以必須列示 org.eclipse.ui。 我們也必須說明執行碼的位置。 在我們的情況中,我們會將程式碼封裝在 helloworld.jar。
最後我們宣告外掛程式提供什麼延伸點。 org.eclipse.ui.views 延伸項目有數個不同的配置參數。 讓我們檢視在處理中指定哪些參數。
我們首先宣告檢視畫面延伸的種類。可以在工作台顯示檢視畫面對話框中使用種類將相關的檢視畫面加以分組。 我們定義自己的種類 "Hello",使它顯示在自己的群組中。
我們宣告檢視畫面的唯一 ID 並指定類別的名稱,該類別提供檢視畫 面的實作。我們也指定檢視畫面的名稱 "Hello Greetings",它會顯示在「 顯示檢視畫面」對話框和檢視畫面的標題列。
外掛程式處理檔案使用許多 ID。 個別延伸點常常定義需要 ID 的配置參數(例如前述用於檢視畫面延伸點的種類 ID)。 我們也定義一個外掛程式 ID。 通常您應該對所有 ID 使用 Java 套件名稱字首,以確保所有已安裝的外掛程式 的唯一性。
在字首後面要使用什麼特定名稱,完全由您決定。 不過,如果外掛程式 ID 字首與其中一個套件名稱相同,那麼您應該避免使用來自 該套件的類別名稱。否則很難分辨出您看到的是 ID 名稱或類別名稱 。
您也應該避免對不同延伸配置參數使用相同 ID。 在上述處理中,我們使用一個共用 ID 字首 (org.eclipse.examples.helloworld),但是所有 ID 都是唯一的。 這個命名方法幫助我們讀取該檔案以及了解哪些 ID 是相關的。