Introduction

Still writing java/swing code?

Read on... and you'll discover that you can do the same in about half the time.

SwiXAT is a Swing-based authoring tool for the quick and easy development of GUI Java applications. It implements out-of-box a true MVC framework and uses XML to define the view (SwiXml is used as the XUL engine), BeanShell as a scripting language for the controller, and JXPath as the binding mechanism between the view and model.

It provides a complete environment in which it is possible to almost write an entire Java Swing application without writing Java compiled code. The use of XPath makes it very simple to traverse the object tree of the application's business model.

SwiXAT is totally free and released under the Apache 2.0 license

You can start to build a new application in few minutes! Read here to get started.

To learn more about SwiXAT you can read the User Guide (pdf) or the on line Tutorials.

Download SwiXAT 0.5.5 here

Much more than yet another XUL framework

It takes a lot of work to develop a Swing application, laying out and configuring GUI components, and then integrating them with the application functionality. SwiXAT addresses both of these issues by providing a framework based on a complete implementation of the MVC architectural pattern.

The benefits obtained by a such framework are the followings:

  • Architectural Correctness: By adopting a true MVC (Model View Controller) based framework, it is very easy to correctly implement any UI application. It's not difficult to write a Java/Swing application, but what's very difficult is to build a good, well designed Swing application, where the adoption of the MVC paradigm permits to reduce the maintenance costs, thanks to the clean separation between the view and the application logic.
  • Development Speed: The adoption of a framework reduces the development cost by providing out-of-box, well integrated and easy to use common features, like wizards, plugins, support for MDI interfaces, etc. Moreover, the use of XML to define the user interface, as well as the adoption of an interpreted scripting language, permits to implement the 'Code&Test' development style, where the compilation time is reduced to zero.
  • Code Reuse: The net separation between the view and the control logic permits to write reusable modules that can be combined in several manners. The developer is naturally induced to modularize the application and write reusable code, minimizing the effort of building new applications or adding new functionality to existing ones.
SwiXAT is all the above, and we hope you'll appreciate our effort.

Do not start from scratch, but climb on the shoulders of the Giants

SwiXAT represents simply the glue to combine together the last available java technologies based on well known and accepted architectural patterns. The following picture illustrates the overall architecture on which SwiXAT is based, in terms of the libraries used and how they collaborate to make SwiXAT a complete and powerful framework:

SwiXAT Architecture

The main elements involved in any application built on top of SwiXAT are the following:

  • The View is based on the XUL paradigm, where the design of the UI interface is made by writing XML tags instead of Swing Java code. XML permits to write less code respect to the equivalent java statements needed to build the same user interface. SwiXML is the XUL framework chosen for this purpose, mainly due to its fundamental characteristics like the robustness and extensibility.
  • The Controller handles requests and creates or prepares the response. Typically controllers need access both to the View and to the business logic (the Model). Controllers handle the request by instantiating a command object, passing it request parameters. The Controller can delegate the execution of the control logic either to script code based on the BeanShell interpreter (as of SwiXAT 0.3.0 we have added the support for the Groovy language), or to compiled java code, as we leave the developer free to choose how to write the control logic.
  • The Model, represented by your own data model and/or object model, is accessed by specific data sources, that represent the bridge between the Model and the View/Controller parts. Some pre-built data sources already exist, but they're easily extensible, and anyone can build a new one to access to any specific data format. In order to permit to navigate the business model obtained by a data source, we use XPath, a very powerful query language used to traverse DOM trees.
  • All the above components are kept together by the Spring Framework, a complete and powerful implementation of the Inversion of Control (or "Dependency Injection") design pattern. The Spring IoC implementation permits to define within an XML file all the components needed by the application (along with all their dependencies), in order to define and access in a easy manner to all the application's parameters.
In order to build an application, the developers need only to write the external files containing the needed XML code (to define both the application context and the views) and JavaScript code (to write the control logic), depicted in the above figure with white boxes.











eXTReMe Tracker
Swixml Springframework Get Firefox