Intro
An in depth tour of the prototype JSR-296 Swing Application Framework
Speaker's Qualifications
This Slide Gains Your Audience's Attention
This Slide Gains Your Audience's Attention
What's the Problem?
Lab Results
Why a Framework is Needed
Why a Framework is Needed
But, Aren't Application Frameworks Giant Scary Monsters?
Not Scary
Disclaimer
What the Framework does
Framework Architecture Overview
The Application Class
The Application Class: Lifecycle
Will my App subclass Application?
Application Framework: Hello World
How the show method works
May I exit? Application exit listeners
Resources
Application Framework Resources
Good old ResourceBundles
ResourceMaps
Using ResourceMaps: example
Resource Injection
Resource Injection Example
Resource Injection Advantages
But ... what about Actions?
Actions: review
The sayHello Action in Action
Actions: what we like
What we're not so happy about
The @Action Annotation
@Actions, Class => ActionMap
@Action resources
@Action enabled/selected linkage
@Action enabledProperty example
One @Action, Multiple Looks
Tasks
Don't block the EDT
Asynchronous @Actions: Tasks
Tasks: tell me about yourself
Asynchronous @Action Example
Asynchronous @Actions that Block
TaskServices
Monitoring Tasks: TaskMonitor
Action and Tasks Summary
Sessions
Session State
SessionStorage
~\Application Data\Sun\MyApp\session.xml
Summary
Watch javadesktop.org
Well written Swing applications tend to have the same core elements for startup and shutdown, and for managing resources, actions, and session state. New applications create all of these core elements from scratch. Java SE does not provide any support for structuring applications, and this often leaves new developers feeling a bit adrift, particularly when they're contemplating building an application whose scale goes well beyond the examples provided in the SE documentation. 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...
Hans Muller is the CTO for Sun's Desktop Division. He has been at Sun for over 15 years and has been involved with desktop GUI work of one kind another for nearly all of that time. He has been involved with the Java project since its earliest days and led the Swing team and later all of the client Java work at Sun.