JavaOne Blog 4: JSR 296 Swing Application Framework, nice but lacking.
The JSR claims to be a canonical form a Swing application, but I don't think the JSR team has used many applications.
Let's start with the basics, where has this JSR been hiding out? Eclipse Rich Client Program (RCP) has had many of these features for years, and more.
The application JSR includes things that are part of a 'typical' application such as (life-cycle, resource, action, task and session state).
Most notable similarity to RCP is the life-cycle. The life-cycle allows the insertion of code during specific points in the application life-cycle such as: launch, initialize, startup, ready shutdown, exit. For instance, if you need to handle something prior to application closure, just override the shutdown() method.
However, there are many features that are used and constantly re-developed, that need to be included in the JSR to create a truely canonical application framework. This features include:
Help: Mapping controls like screens, buttons and input fields to Help documentation may seem OLD School, but it is the one item that I get pinged on when it does not show up in an application. This is something that is part of Eclipse RCP.
Preference screen: Looking at NetBeans, preference screens are not a hot topic. However, Preference screen design and navigation is one of the really cool features of Eclipse and RCP. Preference screens are part of almost every application I use, and is generally on the list of requests that come from my users. A mechanism to simple save and uses Preferences would be useful.
Update: How should an automatic update mechanism work? This is always a problem for every application. Find, download, and install updates are an issue with the conical application.
The primary issue is what distinguishes the differences between a 'canonical' application and an 'environment' such as NetBeans. Help, Preference and Update are part of my vision of a canonical application.
The the high point of the JSR is Task. Task design and implementation is very cool. Task will help people that struggle with the SwingWorker. I also think the Task service will help cleanup code.