最小外掛程式

在沒有使用使用者介面或其他架構的一般舊 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 外掛程式來說,我們會實作自己的檢視畫面,以 "Hello World" 來歡迎使用者。

套件 org.eclipse.ui 和它的子套件包含定義工作台使用者介面(UI)API 的 public 介面。 許多這些介面都有預設實作類別,您可以延伸這些類別來對系統提供簡單的修正。 在 hello world 範例中,我們會延伸工作台檢視畫面以提供一個打招呼的標籤。

這個重要介面是 IViewPart, 它定義必須實作才能提供檢視畫面給工作台的方法。 類別 ViewPart 提供這個介面的預設實作。 在 nutshell 中,檢視畫面組件負責建立顯示檢視畫面所需要的 Widget。

工作台中的標準檢視畫面通常會顯示關於使用者已選取或正在瀏覽的物件的部份資訊。 檢視畫面依據工作台發生的動作更新它們的內容。 在我們的案例中,我們只打招呼,所以檢視畫面很簡單。

使用工具來撰寫我們的外掛程式

您可以使用任一 Java IDE 來建置 Eclipse 外掛程式,但我們將使用 Eclipse Java IDE 透過各個步驟建置外掛程式。如果您不熟悉 Eclipse 工作台和 Java IDE,請參閱「Java 開發使用手冊」以取得進一步關於所採取步驟的解說。現在我們的焦點在程式碼而不是工具。 然而,其中有些入門的 IDE 邏輯。

設定環境

如果是從全新的環境開始,您將需要確定您的程式碼可以存取 org.eclipse.ui 外掛程式。執行底下的步驟, 將這個外掛程式以及它所需的任何外掛程式匯入至您的執行時期工作台實例。 如果您的工作台實例中已有這些外掛程式,請繼續進行『建立外掛程式專案』這一節。

  1. 從資源視景,使用檔案 > 匯入... > 外部外掛程式和片段
  2. 繼續按一下下一步 > 按鈕,直到您到達稱為選項的畫面。 這個畫面將含有一個清單,列出您的主機工作台實例中的所有外掛程式。
  3. 選取 org.eclipse.ui,然後按一下新增必要的外掛程式按鈕。
  4. 按一下完成按鈕。您的「導覽器」檢視畫面應該含有 org.eclipse.ui,以及它需要的所有外掛程式(包括 org.eclipse.swt)。

如需設定主機和執行時期工作台實例的完整討論,請參閱「PDE 手冊」。

建立外掛程式專案

  1. 您將需要建立一個專案,才能進行您的工作。最簡單的方法就是 開啟新建專案...精靈(檔案 > 新建 > 專案...), 然後從外掛程式開發種類中選取外掛程式專案。 如此將會設定專案來撰寫 Java 程式碼並提供您預設的外掛程式 manifest 檔(稍後解釋)。 使用 org.eclipse.examples.helloworld 作為您專案的名稱。 依預設,精靈也會設定 org.eclipse.examples.helloworld 作為 ID。雖然精靈提供您產生不同種類外掛程式程式碼的選項, 但我們還是希望保持簡單。現在,請確定在外掛程式碼產生器頁面上選取建立空白的外掛程式專案
  2. 當問您是否要切換至「外掛程式開發」視景時,請回答
  3. 在專案的 src 目錄下建立 org.eclipse.examples.helloworld 套件。做法是在「套件瀏覽器」檢視畫面中按兩下 org.eclipse.examples.helloworld。 這將展開專案,並顯示 src 目錄。 用滑鼠右鍵按一下 src 目錄以取得快速功能表。 使用新建 > 套件來建立新的套件, 然後給與它 org.eclipse.examples.helloworld 名稱
  4. 在這個套件中,新建一個叫做 HelloWorldView 的類別。 用滑鼠右鍵按一下您剛在前一個步驟中建立的套件,以取得快速功能表。 使用新建 > 類別,以 HelloWorldView 名稱建立新的類別。

撰寫程式碼

現在我們已備妥研讀某些程式碼。在 HelloWorldView 中有您所需的一切。(您可以複製以下內容至您所建立的類別中。) 

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 上。
      }
   }

此檢視畫面組件建立一些 Widget,在 createPartControl 方法中這些 Widget 會 代表該組件。 在這個範例中,我們建立 SWT 標籤並對它設定 "Hello World" 文字。

這全是我們所需要的!我們可以編譯新類別,但最好先確定 .classpath 已適當地設定,這樣我們可以編譯器碼。

  1. 選取 org.eclipse.examples.helloWorld 專案並開啟內容對話框 (用滑鼠右鍵按一下專案 org.eclipse.examples.helloWorld > 內容)。
  2. Java 建置路徑內容中,選取專案標籤,並檢查專案 org.eclipse.uiorg.eclipse.swt。 這些是含有我們所匯入類別的專案。
  3. 重新建置專案。

所以我們已編譯了檢視畫面。我們的檢視畫面看起來應該像這樣:

簡單檢視畫面,說「Hello World」

我們如何執行程式碼並新增這個檢視畫面至工作台?

hello world 外掛程式

我們需要通知平台我們想要提供自己的檢視畫面。 這是利用延伸 org.eclipse.ui.views 延伸點來完成的。 我們提供 manifest 檔 plugin.xml 來登錄延伸,該檔案說明外掛程式,包括它 的程式碼的位置以及要新增的延伸項目。

(如果您遵循下列程序,您可以複製這個資訊至 plugin.xml 檔案中,這個檔案是在您建立專案時所產生的。)

   <?xml version="1.0" ?><plugin
      name="Hello World Example" 
      id="org.eclipse.examples.helloworld"
      version="1.0">
      <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

外掛程式 manifest 檔使用許多 ID。 個別延伸點常常定義需要 ID 的配置參數(例如前述用於檢視畫面延伸點的種類 ID)。 我們也定義一個外掛程式 ID。 通常您應該對所有 ID 使用 Java 套件名稱字首,以確保所有已安裝的外掛程式 的唯一性。

在字首後面要使用什麼特定名稱,完全由您決定。 不過,如果外掛程式 ID 字首與其中一個套件名稱相同,那麼您應該避免使用來自 該套件的類別名稱。否則很難分辨出您看到的是 ID 名稱或類別名稱 。

您也應該避免對不同延伸配置參數使用相同 ID。 在上述處理中,我們使用一個共用 ID 字首(org.eclipse.examples.helloworld),但是所有 ID 都是唯一的。 這個命名方法幫助我們讀取該檔案以及了解哪些 ID 是相關的。

下一步是什麼?

在這個時間點上,我們已實作檢視畫面並宣告外掛程式 Manifest 的構成要素。現在我們需要將外掛程式安裝至平台上,才能執行它。

Copyright IBM Corporation and others 2000, 2003.