The rise of Rich Internet Applications (RIAs) has
lately become an important topic in the Java community. In addition to
new technologies like AJAX and MacroMedia Flex, the combination of
Swing and Java Web Start has also been proposed as a RIA technology.
Much
people criticize Swing because of the lack of data binding and POJO
(plain old Java objects) support. Recently some efforts have been done
to create a data binding layer that simplify data setting onto the
graphical components (see JDNC project).
Also a reference framework is needed to develop Swing applications,
expecially for beginner Swing programmers. Recently some efforts have
been done to design an Advanced Swing Framework (JSR 296).
However this may represent a future step, not a current available solution.
Moreover these attempts do not still provide a complete solution
(a framework and advanced swing components with data binding
capabilities) to quickly and easly develop rich-client applications; in
addition, Swing components are just hard to use: creating a powerful
table or a tree component usually requires a lot of code and time and
skills.
OpenSwing is an open-source Swing
framework that provides an MVC architecture and automates communication
between models, views, and controllers by means of Java Beans, directly
connected to view components. It also provides a suite of advanced
graphics components based on Swing components with data binding between
components and data model.
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 (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 set 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, multi-line text field,
numeric field, currency field, calendar, grid, tree, tree combined with
a grid, lookup, gantt diagram, buttons with image, combo-box, radio
button, check-box, wizard panel, image panel, splash screen, dialog
windows.
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.
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 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.
It can be used with java 1.4, 1.5 or 1.6.
You can access it at:
http://oswing.sourceforge.net
No one has replied yet! Why not be the first?
Sign in or Join us (it's free).