BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

JSR 296 Swing Application Framework Prototype Release

by Scott Delap on Jan 30, 2007 |
One of the common developer complaints with Swing since its inception has been where is the application framework. The API provides a large number of features at the widget level but has traditionally been lacking in supporting API's at the application level. Some solutions that have been created to address application level framework concerns include Netbeans Plaform and Spring RCP. However, nothing "official" has been proposed or endorsed from the Java Swing team itself until the creation of JSR 296 - Swing Application Framework. From the JSR:

This specification will (finally) fill that void by defining the basic structure of a Swing application. It will define a small set of extensible classes or "framework" that define infrastructure that's common to most desktop applications: - The essential application lifecyle, startup and shutdown, with well defined milestones so that applications can insert startup or shutdown work when the application has reached a well known state.

Support for loading localized resources...

- Persistent session state. Most applications need a way to persist things like top level window geometry across sessions. Automatic support for such common cases as well as for loading and storing arbitrary session data at startup and shutdown time, would be useful in most Swing applications.

Actions define the behavior of Swing application from the user's perspective. In all but the smallest applications, it's useful to be able to loosely couple an Action's (localized, branded, etc) presentation from its implementation. Action implementations often must perform some work asychronously wrt to the Swing event dispatching thread. The application framework would provide support for doing so and for providing GUI feedback while significant work is being done on the user's behalf.

This week specification lead Hans Muller has released the first prototype implementation of the JSR. Features include:

  • Application lifecyle, notably GUI startup and shutdown.
  • Support for managing and loading resources, like strings, formatted messages, images, colors, fonts, and other types common to desktop applications.
  • Support for defining, managing, and binding Actions, including Actions that run asynchronously (in the "background").
  • Persistent session state: support for automatically and selectively saving GUI state from one run of an application to the next.

Since the JSR has not reached early draft, the expert group has agreed to make the prototype public to give interested members of the Swing community the opportunity to provide feedback. This version is a snapshot of the ongoing design process and likely to change substantially in the coming months.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT