IBM Reflexive User Interface Builder
An API and application for specifying and rendering Java rich-client GUIs based on an XML script. (This is an ETTK technology.)
Date Posted: July 16, 2004
|
This is an technology.
|
 |
 |
|
 |  They were split essentially because they are two different tools that will most likely be used by two different sets of users. RIB is a GUI builder and RAVEN is intended for accessibility validation of Java GUIs. The split allows each tool to be used independently and focus on its strengths. We feel that we can better satisfy our end users and more easily support and maintain the tools in this way. | | |
 | 
- Support for Frame Level components: You can now render your entire GUI by specifying a top-level Frame component.
- A GUI for compiling and executing your application.
- Concentration on document-building functions (no validations in RIB).
| | |
 |  We removed the validation function from RIB for two reasons:
- to eliminate confusion about which tool to use for validation
- to concentrate our efforts on accessibility validation in RAVEN.
In order to validate your RIB documents, please use RIB in conjunction with RAVEN. You can either use the RAVEN Eclipse perspective in order to validate your GUI as it is displayed in the RIB Document View, or you can compile the generated application and validate it using the RAVEN External Perspective. | | |
 |  The IBM Reflexive User Interface Builder differs from other XML-based GUI systems in that it uses Java Reflection APIs to create its set of tags and attributes. This means that it has no DTD or schema. It also means that the run time is very small. And most importantly, it means that the tags match the components and methods of the particular GUI toolkit being used. This means that, for example, if you already know Java Swing, you can develop GUIs with minimal learning. | | |
 |  AUIML supports a target independent mark-up language (for example, it can be rendered into Swing and HTML implementations) using abstract GUI components. AUIML is not human-friendly; it is intended to be created by a Visual Builder tool (an Eclipse plug-in) and not edited directly. The IBM Reflexive User Interface Builder is an XML language that is GUI toolkit-specific, allows use of any component in the GUI toolkit, and is intended to be used directly by humans. The Builder is directly interpreted to produce the GUI, it requires no pre-compilation step; AUIML requires a visual builder step to prepare for GUI generation. AUIML depends on an extensive and predefined set of XML tags with associated tooling; the Builder uses reflection and thus does not. AUIML requires Eclipse and the Visual Builder extension to develop a GUI; the Builder needs only a text editor to develop a GUI. AUIML is a higher-level toolkit (it included wizards, property sheets, etc.) with a predetermined user interface concept; the Builder is low-level and allows any GUI supported by the GUI toolkit to be developed.
| | |
 |  The IBM Reflexive User Interface Builder comes with several languages pre-configured (perhaps future versions will have more), such as Python and JavaScript. You can add another language by creating a subclass of com.ibm.wac.rib.core.interp.CodeInterpreter and registering your subclass in the scriptlang.properties file. Java Python (Jython) is the most supported language. You may also use embedded Java code to script GUIs. | | |
 |  The IBM Reflexive User Interface Builder (RIB) currently supports the Java AWT and Swing and Eclipse SWT architectures (perhaps future versions will support more). You can add a new architecture by creating a subclass of com.ibm.wac.rib.core.arch.Architecture and registering your subclass in the architecture.properties file. It may be more convenient to subclass com.ibm.wac.rib.core.arch.BaseArchitecture or one of its subclasses.
| | |
 |  Aliases make it easier to enter commonly-used types. For example, if you define the alias <alias name="Table" value="javax.swing.JTable"/>, you can use "Table" as a short form for javax.swing.Jtable. Many of the Swing and SWT types are predefined as aliases. You can change or add aliases by updating the appropriate architecture-based properties file. For example, for Swing the file is swing_aliases.properties.
By prefixing names in the alias value with "!", you tell the Builder to use the name as a no-argument method call (that is, typically a get method) and replace the method with its result. This allows you to express simple sequences of method calls as a short name.
| | |
 |  Objects have two main uses:
- as a way to create an object that is used in multiple places (such as a color value)
- for creating an object used as parameters for another object where it's more convenient (perhaps due to XML syntax) to create the object out-of-line with its use.
The <objects> tag lets you create these objects using XML tagging. You may also create objects in scripts, especially in the <scripts> tag. Any named component in the <components> tags is also effectively an object.
| | |
 |  Yes, you can, but it must be done programmatically using the RIB API. | | |
 |  This problem is not unique to using the IBM Reflexive User Interface Builder. The Builder can make it easier to find out what is wrong. It provides multiple levels of tracing, which can provide you with a lot of debugging information. It also can display a component tree that can let you see the logical order of your GUI. This can help explain many positioning and resizing problems.
| | |
 |  The RIB classes and APIs are described in a set of JavaDoc-generated HTML files. The RIB Eclipse plug-in has extensive online help.
| | |
 |  The Emerging Technologies Toolkit (ETTK) is a collection of emerging technologies that are relevant to IBM's emerging software strategies. The ETTK team works with external users to incubate and further develop these technologies so they can be used to create innovative customer solutions. ETTK packages are focused on just a few select technology areas. In a way, you could associate "ETTK"-labeled technologies as being close to "alphaWorks Featured Technologies." ETTK technologies explore new types of applications or address emerging application-, Internet-, or standard-oriented domains. We value your input and want to hear how you would make use of this technology in your environment; please visit the ETTK Blog or ETTK Wiki for additional information.
| | |
 |  Yes; just run the com.ibm.wac.rib.core.main.GuiLauncher or the com.ibm.wac.rib.core.main.ValidationLauncher program and specify the -notrace switch.
| | |
 |  The IBM Reflexive User Interface Builder (RIB) download zip file has a Word document describing it. The RIB classes and APIs are described in a set of JavaDoc-generated HTML files. The RIB Eclipse plug-in has extensive online help.
| | |
 |  Currently you cannot. You can only validate the accessibility of Swing GUIs. We are working to add this capability.
| | |
 | 
The Emerging Technologies Toolkit (ETTK) is a collection of emerging technologies that are relevant to IBM's emerging software strategies. The ETTK team works with external users to incubate and further develop these technologies so they can be used to create innovative customer solutions. ETTK packages are focused on just a few select technology areas. In a way, you could associate "ETTK"-labeled technologies as being close to "alphaWorks Featured Technologies." ETTK technologies explore new types of applications or address emerging application-, Internet-, or standard-oriented domains. We value your input and want to hear how you would make use of this technology in your environment; please visit the ETTK Blog or ETTK Wiki for additional information.
| |
|
|
 |
|
| |