GUI Structure
From guitar
Contents |
What is it?
The GUI structure is a hierarchical tree view of the GUI. In this project, it is represented using XML. The XML schema is:
The above graphic was generated using the formal description:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:documentation>
This is the formal description of the GUI Structure used by GUITAR.
</xs:documentation>
</xs:annotation>
<!-- definition of simple elements -->
<xs:element name="Name" type="xs:string"/>
<xs:element name="Value" type="xs:string"/>
<!-- definition of attributes -->
<!-- definition of complex types -->
<xs:complexType name="singleAttributesType">
<xs:sequence>
<xs:element ref="Attributes" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<!-- definition of complex elements -->
<xs:element name="Property">
<xs:complexType>
<xs:sequence>
<xs:element ref="Name" minOccurs ="1" maxOccurs="1"/>
<xs:element ref="Value" minOccurs ="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Attributes">
<xs:complexType>
<xs:sequence>
<xs:element ref="Property" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Container">
<xs:complexType>
<xs:sequence>
<xs:element ref="Attributes" minOccurs ="1" maxOccurs="1"/>
<xs:element ref="Contents" minOccurs ="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Contents">
<xs:complexType>
<xs:sequence minOccurs ="1" maxOccurs="unbounded">
<xs:element name="Widget" type="singleAttributesType" minOccurs ="0" maxOccurs="unbounded"/>
<xs:element ref="Container" minOccurs ="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GUI">
<xs:complexType>
<xs:sequence>
<xs:element name="Window" type="singleAttributesType" minOccurs ="1" maxOccurs="1"/>
<xs:element ref="Container" minOccurs ="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GUIStructure">
<xs:complexType>
<xs:sequence>
<xs:element ref="GUI" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
An Example
In the future, we'll provide a small example and its corresponding GUI structure with a detailed explanation of how they are related.
GUI Structures for real GUIs tend to be large, which is why we have provided the following examples on an external site:
http://www.cs.umd.edu/~atif/Benchmarks/UMD2008a/crosswordsage-0.3.5.gui
http://www.cs.umd.edu/~atif/Benchmarks/UMD2008a/freemind-0.7.1.gui
Tools to View and Edit this representation
Because the GUI Representation uses XML, commonly available tools can be used to edit it.
Someone needs to work on a graphical editor for the GUI Representation. A good starting point is the GUI Director software.
Tools that use or generate this representation
The GUI Structure is generated by: GUI Ripper.
The GUI Structure is used by:
Code Generated from the .xsd representation
The .jar corresponding to this file is at: http://guitar.sourceforge.net/GUIStructure.jar
The documentation is available at: http://guitar.sourceforge.net/APIdocs/GUIStructure/
