Release update of OpenSwing: a free Swing based framework
OpenSwing is an open-source suite of advanced graphics components based on Swing toolkit: these components are more sophisticated of those provided with Swing and can be manipolated directly inside the UI designer of the IDE.
It is also a framework that provides data binding mechanism between components and data model, based on the MVC paradigm. Data model is based on Java Beans (POJOs) and it is supported in all OpenSwing components, such as Grid control or components container.
OpenSwing provides a complete solution (a framework and advanced swing components with data binding capabilities) to quickly and easily develop rich-client applications.
It is possibile to apply this framework to develop java stand-alone applications, without an underlying database, or to develop more classic two layered client-server applications (front-end + database) or to develop three tiered applications (i.e. Swing front-end + HTTP + java servlet + database), or to develop distributed rich-client applications (Swing front-end + server side applications remotely accessed via RMI or another protocol + database).
Openswing includes a collection of classes that can be used:
- to create the application front-end, through a collection of advanced graphics controls, comparable to those provided by traditional RAD development environments like Visual Basic or Delphi.
Graphics controls include label control, text field, text formatted field, multi-line text field, numeric field, currency field, calendar, grid, properties grid, tree, tree combined with a grid, lookup, gantt diagram, buttons with image, combo-box, combo-box multi-column, radio button, check-box, list, list multi-column, wizard panel, image panel, splash screen, dialog windows, tip of the day frame, progress bar/panel/dialog, licence agreement panel.
Grid usage is especially sophisticated: it allows columns or rows locking, data pagination, columns filtering and sorting, persistent storage of grid "state" (sorting/filtering conditions, columns position/width/visibility), data exporting and the grid model is based on a list of POJOs as for a tree component and as for a panel of graphics controls whose data model is based on a POJO. POJO support is extended to the entire set of graphical components that compose the GUI.
Graphics controls are compliance with Java Beans specifications, so they can be used in the UI designer of an IDE, like JBuilder, JDeveloper, NetBeans, Eclipse to the purpose of creating graphical windows by drawing them in the UI designer, likewise with other non java RAD environment.
Building grids is expecially easy: a grid can be graphically composed by using the UI designer of the adopted IDE and by dropping on it the grid's columns and setting their properties by using the property manager of the IDE.
- The framework allows to create applications based on SDI (Single Document Interface) paradigm or based on MDI frame (Multiple Document Interface) and internal frames, including pull-down menu, tree menu and many front-end customization levels.
- to create business logic tier + data-access tier, through a set of utility classes that simplify development process; this utility layer may be omitted and replaced by other popular server-side frameworks/ORM tools, like Spring, Hibernate or any other proprietary framework.
OpenSwing provides some utility classes that simplify Hibernate integration with OpenSwing, iBatis integration with OpenSwing and comunication between OpenSwing and Spring Framework, so that you can develop UI layer using OpenSwing and develop server-side layer using Spring and/or Hibernate or iBatis.
- to create a comunication tier placed between presentation-tier (application front-end) and business-logic tier. This tier may be easly extended, by developing an own comunication layer above the standard layer offered by OpenSwing, to meet specific needs (such as RMI comunication with EJB, SOAP or other comunication mechanisms with server-side applications).
Moreover, this framework provides some basic features that cover many issues that usually arise in enterprise application development, such as data extraction from grids, document viewing on the most popular desktop applications (like reports on Excel, CSV, XML, HTML, PDF, RTF), activities logging, internationalization support (label translation, date format, decimal symbols, grouping, currency support, etc.), authorization management according to grants owned by connected user.
All these framework components are strongly decoupled each other, by means of an accurate objects design, based on interface adoption that facilitate the implementation of new behaviours for base framework components.
It can be used with java 1.4, 1.5 or 1.6.