Swing Markup Language

SwingML is an open source framework that allows JFC/Swing user interfaces to be defined using XML and J2EE programming style.

Why SwingML?

Browser based applications are arguably the most popular way to deliver applications to the users desktop. Javascript coupled with AJAX technology is helping to provide users with a "rich" user interface experience. However, applications with heavy usage patterns are still cumbersome with a browser based UI, even supported with AJAX. There's still a place for user interfaces that can take advantage of repsonsivness and richness of client side user interface widgets.

Leverage J2EE Skills

SwingML allows dynamic application logic and user interface definitions to reside on a J2EE application container, developers can leverage the same frameworks, tools, and patterns they are familiar with when creating J2EE based dynamic web applications, without the learning curve of Swing user interface development.

Web Deployment Model

SwingML requires the client to have an installed JRE and the SwingML framwork classes. Java WebStart technology provides an effective way to install these elements in a ubiquitous manner. These client elements will change infrequenctly, but web/app server applications can be accessed by simply passing in a URL to the client side SwingMLRenderer class. Multiple rich user interface swing clients can be accessed and modified without having to push elements to clients. Additionally, an Applet renderderer is provided by the framework, so Swing interfaces can be delivered through a browser if a client side JRE is not available.

SwingML Renderer

The SwingML Renderer is a java class that takes the SwingML XML tags obtained from an application server and uses it to produce a Swing graphical user interface. The SwingML Renderer manages all the events that occurs in the gui and sends back to the server SwingML that represents all the data changes made on the client. The request/response model is used to perform the communication between the client and the server allowing with this server side language independence.

A SwingML renderer resides on a client that has access to an installed Java JRE. Webstart provides a ubiquitous way to deliver a JRE and the supporting SwingML rendering classes. be installed on

SwingML Specification

The SwingML specification is based completely on XML. It provides the necessary elements and their attributes to render any JFC/Swing component. Its development is driven completely by the features supported by the SwingML Renderer and the custom components. Supported Swing components are defined by SwingML's DTD.