OpenSwing Framework: advanced graphics Swing components - server side integration with Spring

Introduction to Openswing

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 Desktop Applications or Rich Internet Applications (three tiered applications based on Swing front-end + HTTP + java servlet + 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 more than 30 widgets: label control, multi-line label control, text field, text formatted field, multi-line text field, numeric field, currency field, calendar, grid, nested grids, grid with nested generic components, properties grid, tree, check-box tree, tree combined with a grid, lookup, lookups with auto-completition, gantt diagram, buttons with image, combo-box, combo-box multi-column, radio button, check-box, list, 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, alert window, iconifable window, "outlook like" panes, link button.
    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 import/export 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, iBatis, Apache Cayenne, JPA/TopLink Essentials or any other proprietary framework.
    OpenSwing provides some utility classes that simplify Hibernate integration with OpenSwing, iBatis integration with OpenSwing, Apache Cayenne 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.
    OpenSwing provides some utility classes that simplify JPA/TopLink Essentials integration with OpenSwing, , so that you can develop UI layer using OpenSwing and develop server-side layer using Java Persistence API with J2SE or J2EE.
  • 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).
    This layer supports Hessian serialization library too, so it is possible to combine a client side application running with a specific version of java with its server-side running with another version of java.

Moreover, this framework provides some basic features that cover many issues that usually arise in enterprise application development, such as data extraction from grids and data import to 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.

 

Openswing links

OpenSwing has been awarded by JARS as TOP 5% RATED   

Registered in Shareup Networks



Registered in Free Download



See an article about OpenSwing published in Java Developer Journal.

See a sample application based on OpenSwing and JGoodies look 'n feel.

Flash tutorial to web site, that shows how to create an MDI application having editable grid and master/detail functionalities.

See JAllInOne beta preview (you must have JRE >= 1.4.2 installed on your machine); to authenticate into this application use the account: "guest" / "guest". This is an ERP application based on OpenSwing. See the screenshot below.

 


Use of Openswing in commercial products

OpenSwing is released with LGPL licence, i.e. you are free to use Openswing library into non-free programs and these can have another kind of licence (e.g. commercial license); in fact, LGPL licence distinguishes between a "work based on the library" and a "work that uses the library": the former contains code derived from the library, whereas the latter must be combined with the library in order to run. A "work based on the Library" inherits the same LGPL licence, but a "work that uses the library" not: if your application only uses Openswing then your application can have another licence.

Please report in this forum a brief description about applications based on OpenSwing you have realized!

What's new

2008-08-28 OpenSwing release 1.7.2 is available.
Improved grid export feature by changing ExportOptions class:
- added "showFilteringConditions" property, used to add a region on top of the exported grid, reporting filtering conditions; moreover, new global property SHOW_FILTERING_CONDITIONS_IN_EXPORT has been added to ClientSettings class: it is used to define the default value of "showFilteringConditions" flag
- added "title" property, in order to set a title for exporting document; moreover, new global property SHOW_TITLE_IN_EXPORT has been added to ClientSettings class: it is used to automatically set the frame title in "title" property
Improved GridControl:
- added "exportGrid" callback method in GridController, in order to customize exporting result, for instance by adding a title or filtering pane,
by accessing ExportOptions object automatically generated by grid; a programmer can change some of these settings, before performing the export task
- added "editOnSingleRow" property to GridControl, in order to allow row editing on one row only per time: the current selected row
- added "demo44" sample application to show how to use "editOnSingleRow" property and how to customize grid exporting result
- fixed bug on required columns checking when saving data on grid
- now when saving rows having mandatory columns not completely filled, the warning message reports also the name of the required column
- now delete button is enabled when inserting rows in grid and it can be used to remove just inserted rows
- fixed bug when removing new rows in insert mode and grid contains ComboBoxColumn objects
- fixed bug with FileColumn when downloading a file just uploaded
Changed behavior in Form panel in INSERT model when pressing reload button: now input controls are empty out without requiring any data loading.
Fixed problem when finalizing a Form panel.
The distribution includes also Jar file libraries, source files, javadoc, licence and readme.txt installation instructions.

Past news

See past news

Licence | Contacts | ©2007 Mauro Carniel SourceForge.net Logo