WEB开发网
开发学院软件开发Java 创建一种声明性 XML UI 语言:用 Java 语言构建一... 阅读

创建一种声明性 XML UI 语言:用 Java 语言构建一个 UI 和配套框架

 2009-10-19 00:00:00 来源:WEB开发网   
核心提示: Resource 元素的目的是向这个 Java 框架提供一个资源(本例中是一个 JAR)的 URI,该资源包含运行时可以加载并绑定的已编译 Java 类,创建一种声明性 XML UI 语言:用 Java 语言构建一个 UI 和配套框架(5),这个资源依赖于将被调用的一个特殊类(class 属性的

Resource 元素的目的是向这个 Java 框架提供一个资源(本例中是一个 JAR)的 URI,该资源包含运行时可以加载并绑定的已编译 Java 类。这个资源依赖于将被调用的一个特殊类(class 属性的值),该类主要用于提供一个已公开的类,以便响应从 GUI 生成的所有事件。

Window 元素:

包含一个 GridLayout 序列,该序列可以包括 GridLayout,BasicDialog、OpenFileDialog、SaveFileDialog、CustomDialog、Panel、SplitPane 和 TabbedPane 元素,以及 0 个或一个 MenuBar。

拥有 7 个属性 — 都是必需的 — 它们使用 XML Schema Recommendation 中的各种已定义数据类型(注意 xs 前缀)。

Window 可以包含多个不同的顶级和中级容器。Window 元素引用了一个 GridLayout 元素。GridLayout 指定了由一个单元网格组成的维度,用于容纳组件。GridLayout 提供的布局特性类似于 Java 环境中的 java.awt.GridBagLayout,但没有后者复杂。

如果不深入检查,这个 XML 模式的描述性似乎已经足够了。清单 3 展示了另外几个元素。

清单 3. 声明性 XML UI 模式:更多元素

... 
<xs:element name="CustomDialog"> 
 <xs:complexType> 
  <xs:sequence> 
   <xs:element ref="xui:GridLayout"/> 
   <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:Panel"/> 
  </xs:sequence> 
  <xs:attribute name="modal" type="xs:boolean" use="required"/> 
  <xs:attribute name="idref" type="xs:IDREF" use="optional"/> 
  <xs:attribute name="name" type="xs:string" use="required"/> 
  <xs:attribute name="id" type="xs:ID" use="required"/> 
  <xs:attribute name="x" type="xs:short" use="required"/> 
  <xs:attribute name="y" type="xs:short" use="required"/> 
  <xs:attribute name="width" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="height" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="visible" type="xs:boolean" use="required"/> 
 </xs:complexType> 
</xs:element> 
 
<xs:element name="Panel"> 
 <xs:complexType> 
  <xs:sequence> 
   <xs:element maxOccurs="1" minOccurs="1" ref="xui:GridLayout"/> 
   <xs:choice minOccurs="0" maxOccurs="unbounded"> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:Button"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:Calendar"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:CheckBox"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:ComboBox"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:HypertextPane"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:Image"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:Label"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:List"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:PasswordField"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:ProgressBar"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:RadioButton"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:SliderBar"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:Table"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:TextArea"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:TextField"/> 
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="xui:Tree"/> 
   </xs:choice> 
  </xs:sequence> 
  <xs:attribute name="x" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="y" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="width" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="height" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="name" type="xs:string" use="required"/> 
  <xs:attribute name="id" type="xs:ID" use="required"/> 
  <xs:attribute name="idref" type="xs:IDREF" use="optional"/> 
 </xs:complexType> 
</xs:element> 
 
<xs:element name="RadioButton"> 
 <xs:complexType> 
  <xs:sequence> 
   <xs:element maxOccurs="3" minOccurs="0" ref="xui:Image"/> 
  </xs:sequence> 
  <xs:attribute name="label" type="xs:string" use="required"/> 
  <xs:attribute name="x" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="y" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="width" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="height" type="xs:unsignedShort" use="required"/> 
  <xs:attribute name="enabled" type="xs:boolean" use="required"/> 
  <xs:attribute name="selected" type="xs:boolean" use="required"/> 
  <xs:attribute name="id" type="xs:ID" use="required"/> 
  <xs:attribute name="orientation" use="required"> 
   <xs:simpleType> 
    <xs:restriction base="xs:token"> 
     <xs:enumeration value="horizontal"/> 
     <xs:enumeration value="vertical"/> 
    </xs:restriction> 
   </xs:simpleType> 
  </xs:attribute> 
 </xs:complexType> 
</xs:element> 
... 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:创建 声明 XML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接