• 沒有找到結果。

5.1 模型與模型之間的轉換規則

5.1.3 Eclipse 導引精靈模型轉換規則

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

59

5.1.3 Eclipse導引精靈模型轉換規則

圖 5.15 為平台無關導引精靈結構對應於 Eclipse 導引精靈結構的轉換規則示意圖,

iWizard 會被轉換成 EWizard 模型,用來收集 Eclipse 導引精靈的所有內容,接著 iPage 與 iPageName 分別轉換成 EPage 與 EPageName 模型完成 Eclipse 導引精靈結構轉換,

最 後 所 有 繼 承 Question 類 別 的 問 題 描 述 模 型 , 都 會 被 轉 換 成 Composite 與 產 生 WidgetDeclaration 模型進行接下來問題描述模型的轉換。

圖 5.15:Eclipse 導引精靈的頁面結構轉換示意圖。

Composite 是用來收集描述一個資料收集問題所需的 Eclipse 使用者介面元件集合,

WidgetDeclaration 則是用來收集必須宣告成全域變數的 Eclipse 使用者介面元件的名稱 與宣告型態,因此不同的問題描述模型經過轉換後都會產生一組特定的 Eclipse 使用者 介面元件與 WidgetDeclaration,我們將從四種不同的問題描述超模型來進行轉換規則的 介紹,分別是 TextInput、MultipleChoice、Dialog 與 GroupQuestion:

TextInput

圖 5.16 TextInput 對應於 Eclipse 導引精靈結構的轉換規則示意圖,TextInput 對於 不同的「style」屬性轉換結果也會有所不同,主要分成以下兩種類型:

textfield:產生 Label、Text 與 WidgetDeclaration 模型,Label 用來顯示資料收集 問題的標題,Text 則是在「multi」屬性給予 false 值,產生一個允許使用者進行 編輯的單行文字區塊,最後 WidgetDeclaration 用來收集 Text 進行全域變數宣告時所 需的資料。

textarea:與上述類型相似,一樣產生 Label、Text 與 WidgetDeclaration 模型,但 不同的地方在於 Text 的「multi」屬性給予 true 值,產生一個允許使用者進行編輯 的多行文字區塊。

圖 5.16:TextInput 的 Eclipse 導引精靈轉換示意圖。

MultipleChoice

圖 5.17 為 MultipleChoice 與 MenuItem 對應於 Eclipse 導引精靈結構的轉換規則示 意圖,MultipleChoice 對於不同的「style」屬性轉換結果也會有所不同,主要分成以下 三種類型:

radiobutton:產生一個 Label 模型用來顯示資料收集問題的標題,接著根據 MenuItem 個數產生對等數量的 Button 模型,Button 在「type」屬性給予 RADIO 值,

產生 radiobutton 讓使用者進行選取,WidgetDeclaration 用來收集 Button 進行全域 變數宣告時所需的資料。

checkbox:與上述類型相似,一樣產生一個 Label 模型與根據 MenuItem 個數產生 對等數量的 Button 模型,還有用來收集 Button 資料的 WidgetDeclaration 模型,但

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

61

圖 5.17:MultipleChoice 的 Eclipse 導引精靈轉換示意圖。

不同的地方在於 Button 的「type」屬性是給予 CHECK 值,用來產生 checkbox 讓使 用者進行選取。

dropdownmenu:產生一個 Label 模型用來顯示資料收集問題的標題,然後產生 Combo 模型作為下拉式選單的框架,接著根據 MenuItem 個數產生對等數量的 Item 模型作 為下拉式選單的選項,WidgetDeclaration 用來收集 Combo 進行全域變數宣告時所需 的資料。

Dialog

圖 5.18 為 Dialog 對應於 Eclipse 導引精靈的轉換示意圖,Dialog 對於不同的「style」

屬性轉換結果也會有所不同,但目前在本系統上只提供一種類型 filebrowser,此類型 在透過轉換後會產生 Label、FileBrowser、Text 與 WidgetDeclaration 模型,Label 用來顯 示資料收集問題的標題,FileBrowser 用來產生一個啟動文件瀏覽器的按鈕,在此產生的 Text 模型在「multi」屬性給予 false 值,用來顯示透過文件瀏覽器被選取檔案的路徑,

WidgetDeclaration 用來收集 Text 進行全域變數宣告時所需的資料。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

62

圖 5.18:Dialog 的 Eclipse 導引精靈轉換示意圖。

GroupQuestion

圖 5.19 為 GroupQuestion 對應於 Eclipse 導引精靈的轉換示意圖,經過轉換後會產 生 Group 模型用來收集相同性質的 Composite 集合,接著將包含在 GroupQuestion 裡的 問題描述模型,轉換成 Composite 模型繼續進行問題描述模型的轉換並且儲存於 Group 裡。

圖 5.19:GroupQuestion 的 Eclipse 導引精靈轉換示意圖。

最後是平台無關導引精靈的資料驗證模型轉換,主要包含 ErrorMessage 與 Validation 兩個部分,圖 5.20 為 Question 裡 helpmsg 屬性的 Eclipse 導引精靈的轉換示意圖,在 此部分的 helpmsg 是問題描述模型的輔助訊息屬性,因此經過模型的轉換後會產生 EHelp 模型,用來產生 Eclipse 導引精靈上的輔助訊息。接著圖 5.21 為 Validation 對應於

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

63

圖 5.20:Question 裡 helpmsg 屬性的 Eclipse 導引精靈轉換示意圖。

Eclipse 導引精靈的轉換示意圖,經過轉換後會產生 EValidation 模型,用來產生 Eclipse 導引精靈的資料驗證框架,包含在 Validation 裡的 ErrorMessage 模型是屬於在資料驗證 過程中出現錯誤時用來提醒使用者的錯誤訊息,所以經過模型轉換後會產生 ErrorMsg 模型並且儲存於 EValidation 裡。

圖 5.21:Validation 的 Eclipse 導引精靈轉換示意圖。