2009年4月10日 星期五

U18 第三個元件(2)──基本Data Model編輯器的層次

如果一個編輯器只能處理一個bean是非常浪費資源的,更何況一個bean file裡可以有多個bean,一個設定資料夾裡可以有多個bean file。folder-bean file-bean-property的完整排列需要三維陣列,整個系統定義使用的設定檔都放置到同一個編輯器是這個元件的最終需求。

bean-property的對應如同上一篇提到的會由JPanel-Jcomponent來實作;folder-bean file-bean會選用JTree作兩層式的管理,bean file列示在第一層節點,bean則依附在對應的bean file之下。這樣的設計即使在面臨只開一個bean file的場合或是系統同時有多個設定資料夾,也只需要對應縮減或增加JTree的結構層級就可以符合需求。

回到屬性的編輯內容來看,讀取設定檔的內容與註解只能列出現在有定義的屬性,總計若有20個屬性而設定檔內只有10個有儲存值的話(有些不能放值以便有其他作用),目前的編輯器沒有辦法列出那10個不存在的屬性。解決這個問題必須另外定義一個檔案放置所有的屬性與UI定義,編輯器根據該頁面定義檔建立其專用的編輯畫面。這才是編輯器的完成型態。

提供便利的編輯器給使用者快速地改變所有設定檔的內容,設定檔可編輯的屬性同時能夠方便地更動,這兩種功能的組合就是SA Tool所需要的基本編輯界面。藉由檔案、頁面與屬性內容的擴充,SA Tool才能夠具有彈性地擴充需要的屬性來對應開發系統所需要的參數定義,之後再經由統一的元件結構與用法處理讀入的Properties調整元件的實際作用。

SA Tool需要的編輯器在UI上還需要另外定義其他與顯示無關的設定,像是判斷值開關其他屬性是否可以編輯、便利編輯的屬性群組化、外掛檢查輸入值的檢查類別……等等,這些都可以因應編輯的必要性予以加強。但是基本Data Model編輯器本身已經不容易實作了,往上堆疊設計的SA Tool自然更為複雜,而且還要搭配對應的開發方法論才能定義出適切範圍的正確屬性。

註:這裡的內容並未實作在workspace裡,但是在之前的專案裡已驗證過可行。

沒有留言:

張貼留言