最底層的設計是將一個可定義的屬性對應到一個UI Bean,利用comment來標示這個UI Bean的實際類別與描述屬性;UI類別名稱會依序生成,同時呼叫描述屬性的對應方法(有些屬性需要加工處理,像是Jcombo的選單內容字串)。基本的定義屬性有:提示文字、生成類別、enable、visible與選單內容字串。提示文字與編輯欄位的tooltip都會顯示屬性原本的名稱。
欄位向上的集合是頁面,對應的節點是bean;允許定義的屬性是提示文字、生成類別與欄位寬度。頁面的寬度減去欄位寬度就是提示文字的寬度。再向上就是根節點beans,允許定義的屬性是提示文字、background、foreground、font、width與height。加上單頁式的編輯註解後,設定檔案的內容會像是下面的樣子,附圖是執行時的範例。
<!-- frame's name.
class=javax.swing.JFrame,background=0x0000ff,foreground=0xffff00,
font=monospaced-plain-16,width=400,height=300 -->
<beans>
<!—Page 0.
class=javax.swing.JPanel,fieldwidth=200-->
<bean id="FieldModel">
<!-- This is field1 prompt.
class=javax.swing.JTextField,enable=true,visible=true -->
<property name="field1" value="default1" />
<!-- This is field2 prompt.
class=javax.swing.JCheckBox,enable=true,visible=true -->
<property name="field2" value="true" />
<!-- This is field3 prompt.
class=javax.swing.JComboBox,enable=true,visible=true,items=|1|2|3 -->
<property name="field3" value="" />
<!-- .
class=javax.swing.JComboBox,enable=false,visible=true,items=|1|2|3 -->
<property name="field4" value="2" />
</bean>
</beans>

編輯欄位除了字串的設定外,還應該為list、map與listmap準備另外用對話盒放置的集合編輯器才算擁有完整的編輯功能。
註:這裡的內容並未實作在workspace裡,但是在之前的專案裡已驗證過可行。
沒有留言:
張貼留言