OpenSwing project is an open-source framework that can be used to develop java applications based on Swing front-end.
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 web applications (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).
The framework includes a set of class libraries 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 labels, text fields, multi-line text fields, numeric fields, currency fields, calendar, grid, trees, tree combined with a grid, lookup, gantt diagram, buttons with images, combo-box, radio buttons, check-box. Graphics controls are compliance with Java Beans specifications, so they can be used in the graphical designer of a RAD environment, like JBuilder, JDeveloper, NetBeans, Eclipse, to the purpose of creating graphical windows by drawing them in the graphical designer, likewise with other non java RAD environments. 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, like Struts, Spring, Hibernate or any other proprietary framework.
- 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, Acrobat Reader, etc.), activities logging, internationalization support (label translation, date format, decimal symbols, grouping, currency support, etc.), authorization management according to grants owned by connected user.
All this 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.