• 沒有找到結果。

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

5.1.2 Java 導引精靈模型轉換規則

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

54

圖 5.7:Validation 的網頁應用程式導引精靈轉換示意圖。

中出現錯誤時用來提醒使用者的錯誤訊息,所以經過模型轉換後會產生 ErrorMsg 模型並 且儲存於 WValidation 裡。

5.1.2 Java導引精靈模型轉換規則

圖 5.8 為平台無關導引精靈結構對應於 Java 導引精靈結構的轉換規則示意圖,iWizard 會被轉換成 JWizard 模型,用來收集 Java 導引精靈的所有內容,接著 iPage 與 iPageName 分別轉換成 JPage 與 JPageName 模型完成 Java 導引精靈的結構轉換,最後所有繼承 Question 類別的問題描述模型,都會被轉換成 JComponentSet 與產生 WidgetDeclaration 模型進行接下來問題描述模型的轉換。

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

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

55

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

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

分別是 TextInput、MultipleChoice、Dialog 與 GroupQuestion:

TextInput

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

textfield:產生 JLabel、JTextField 與 WidgetDeclaration 模型,JLabel 用來顯示資料 收 集 問 題 的 標 題 , JTextField 則 是 產 生 可 以 進 行 編 輯 的 單 一 行 數 文 字 區 塊 , WidgetDeclaration 用來收集 JTextField 進行全域變數宣告時所需的資料。

textarea:產生 JLabel、JTextArea 與 WidgetDeclaration 模型,JLabel 用來顯示資料 收集問題的標題,JTextArea 則是產生一個可以進行無樣式文字編輯的多行文字區塊,

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

圖 5.9:TextInput 的 Java 導引精靈轉換示意圖。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

56

MultipleChoice

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

radiobutton:產生一個 JLabel 模型用來顯示資料收集問題的標題,接著產生一個 ButtonGroup 模型用來收集根據 MenuItem 個數產生對等數量的 JRadioButton 模型,

ButtonGroup 是為了使每一個 JRadioButton 模型產生的 radiobutton 彼此之間存在 一種互斥的關係,WidgetDeclaration 用來收集 JRadioButton 進行全域變數宣告時所 需的資料。

checkbox:產生一個 JLabel 模型用來顯示資料收集問題的標題,接著根據 MenuItem 個數產生對等數量的 JCheckBox 模型,由於在 Java 導引精靈模型裡對於 JCheckBox 模型的用法就是希望彼此之間不存在互斥的關係,所以並不需要使用 ButtonGroup 來收集 JCheckBox 集合,WidgetDeclaration 用來收集 JCheckBox 進行全域變數宣告時 所需的資料。

dropdownmenu:產生一個 JLabel 模型用來顯示資料收集問題的標題,然後產生 JComboBox 模型作為下拉式選單的框架,接著根據 MenuItem 個數產生對

圖 5.10:MultipleChoice 的 Java 導引精靈轉換示意圖(1) 。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

57

圖 5.11:MultipleChoice 的 Java 導引精靈轉換示意圖(2) 。

等數量的 Item 模型作為下拉式選單的選項,WidgetDeclaration 用來收集 JComboBox 進行全域變數宣告時所需的資料。

Dialog

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

屬性轉換結果也會有所不同,但目前在本系統上只提供一種類型 filebrowser,此類型 在透過轉換後會產生 JLabel、FileBrowser、JTextField 與 WidgetDeclaration 模型,JLabel 用來顯示資料收集問題的標題,FileBrowser 用來產生一個啟動文件瀏覽器的按鈕,在此 產生的 JTextField 則是用來顯示透過文件瀏覽器被選取檔案的路徑,WidgetDeclaration 用來收集 JTextField 進行全域變數宣告時所需的資料。

圖 5.12:Dialog 的 Java 導引精靈轉換圖示意。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

58

GroupQuestion

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

圖 5.13:GroupQuestion 的 Java 導引精靈轉換示意圖。

最後是平台無關導引精靈的資料驗證模型轉換,主要包含 ErrorMessage 與 Validation 兩個部分,圖 5.14 為 ErrorMessage & Validation 對應於 Java 導引精靈的轉換示意圖,

Question 模型裡的 helpmsg 屬性與負責資料驗證的 Validation 模型,經過轉換後會產生 JHelp 模型,用來描述 Java 導引精靈的輔助方法,接著包含在 Validation 裡用來顯示錯 誤訊息的 ErrorMessage 模型,經過轉換後會產生 ErrorMsg 模型並且儲存於 JHelp 裡。

圖 5.14:ErrorMessage & Validation 的 Java 導引精靈轉換示意圖。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

59