• 沒有找到結果。

4.2 平台專屬導引精靈

4.2.3 Eclipse 導引精靈模型

Eclipse 導引精靈主要是利用 Eclipse 的 SWT(Standard Widget Toolkit) 與 JFace 來 進行建構。SWT 是由 IBM 所開發的圖形使用者介面元件資料庫,也是目前 Eclipse 平台 用來建構相關 Plug-ins 與 Eclipse RCP 應用程式的重要工具。JFace 是一種建立在 SWT 基礎上的 Java 應用程式框架,對於 JFace 的實作主要呈現的是一種獨立的視窗系統,

• org.eclipse.jface_3.7.0.jar

• org.eclipse.swt.win32.win32_x86_3.7.1.jar

• org.eclipse.core.commands_3.6.0.jar

• org.eclipse.equinox.common_3.6.0.jar

圖 4.7 為建構好的平台專屬的 Eclipse 導引精靈超模型,超模型主要分成三個部分 其中包含 Eclipse 導引精靈結構模型、Eclipse 使用者介面模型與輔助方法模型:

Eclipse 導引精靈結構

Eclipse 導引精靈結構主要以 EWizard、EPage、EPageName、Composite 與 WidgetDeclaration 五個類別進行定義,EWizard 為描述一個 Eclipse 導引精靈的基本框 架,EWizard 會包含一至多個用來進行資料收集的 EPage 導引精靈頁面,每一個 EPage 裡 會 包 含 多 個 C o m p o s i t e 與 W i d g e t D e c l a r a t i o n 的 集 合 。 在 此 定 義 的

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

45

圖 4.7:平台專屬的 Eclipse 導引精靈超模型。

Composite 主要是用來收集在 EPage 上,描述資料收集問題所需的 EComponent 元件集合,

所以一個 Composite 代表的就是一個收集資料的方式。每一個 EComponent 在 Java 程式 中都必須經過宣告後才能夠使用,但有些 EComponent 基於使用上的便利必須宣告成全 域變數,所以 WidgetDeclaration 就是用來收集必須宣告成全域變數的 EComponent 的名 稱與宣告型態。最後是 EPage 之間連接關係的建立,每一個 EPage 的名稱都必須以 EPageName 進行宣告並且是唯一的,EWizard 會有順序的對每一個 EPageName 進行收集,

當作是每一個 EPage 的執行順序。

Eclipse 使用者介面元件

Eclipse 使用者介面元件主要以 EComponent、Label、Text、Button、Combo、Item、

FileBrowser 與 Group 八個類別進行定義,其中 EComponent 是定義一個 Eclipse 使用者 介面元件的父類別,因此 Label、Text、Button、Combo、FileBrowser 與 Group 都必須繼 承 EComponent。在此定義的使用者介面元件主要是用來具體呈現 Eclipse 導引精靈頁 面上進行資料收集的方法,並且以 SWT 裡常被使用到的元件為主,以下將會介紹幾個我

Button:此類別在我們的模型裡主要是用來定義 Radiobutton 與 Checkbox,提供使 用者可以對此物件進行選取或取消選取的選擇,所以此類別在進行宣告時必須藉由 給予不同的參數來產生所需的 Button 樣式,當需要產生一個 Radiobutton 時必需要

在宣告時給予「RADIO」參數,需要 Checkbox 時則給予「CHECK」參數,與 Java Swing 不同的地方在於,利用 SWT 產生的 Radiobutton 集合每一個彼此之間都是互斥的只 Button 元件來進行設計,主要功能是當使用者觸發此 FileBrowser 的按鈕事件時,

會即時產生一個文件瀏覽器供使用者進行檔案資料的選擇。

輔助方法

輔助方法主要以 EHelp、EValidation 與 ErrorMsg 三個類別進行定義,Eclipse 的導 引精靈框架對於使用者輸入資料後並沒有一套完整的驗證機制,因此在我們的模型裡利 用 Eclipse 導引精靈頁面框架提供的兩個方法 setMessage()與 setErrorMessage()來建 構輔助方法。每一個 Composite 都會包含 EHelp 與 EValidation 兩個類別,EHelp 用來描述 一個問題的輔助訊息,透過 setMessage()將訊息顯示在導引精靈頁面丄,EValidation 則 是用來描述一個資料驗證的方法並包含一至多個利用 ErrorMsg 類別定義的錯誤訊息,透 過 setErrorMessage()將錯誤訊息顯示在導引精靈頁面上,但 EValidation 產生的只是資 料驗證的框架,對於驗證資料時所需的邏輯運算還是需要程式開發者自行撰寫。

最後圖 4.8 為利用 Xtext 建構而成的平台專屬的 Eclipse 導引精靈 Ecore 模型。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

48

圖 4.8:平台專屬的 Eclipse 導引精靈 Ecore 模型。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

49