examples
Class SessionStorageExample1

java.lang.Object
  extended by org.jdesktop.application.AbstractBean
      extended by org.jdesktop.application.Application
          extended by examples.SessionStorageExample1

public class SessionStorageExample1
extends Application

An example that demonstrates the default support for saving and restoring GUI session state. Try running the application, resizing and moving the main Frame, resizing some of the color split panes, changing the selected tab, the widths of columns in the "all colors" tab. When the app is restarted, those GUI features should be restored to the way you left them.

When the application exits, session state for the application's mainFrame component tree is saved using the SessionStorage save method, and when the application is launched it's restored with the restore method. This is done by overriding the Application startup and shutdown methods:

 @Override protected void shutdown() {
     getContext().getSessionStorage().save(mainFrame, "session.xml");
 }
 @Override protected void startup() {
     ApplicationContext ctx = getContext();
     ctx.setVendorId("Sun");
     ctx.setApplicationId("SessionStorageExample1");
     // ... create the GUI rooted by JFrame mainFrame
     ctx.getSessionStorage().restore(mainFrame, "session.xml");
 }
 
Error handling has been ommitted from the example.

Session state is stored locally, relative to the user's home directory, using the LocalStorage save and load methods. The startup method must set the ApplicationContext vendorId and applicationId properties to ensure that the correct local directory is selected on all platforms. For example, on Windows, the full pathname for filename "session.xml" is:

 ${userHome}\Application Data\${vendorId}\${applicationId}\session.xml
 
Where the value of ${userHome} is the the value of the Java System property "user.home".

Note: this example is intended to show how the SessionStorage API works and what it can do. Applications subclasses, like SingleFrameApplication, save/restore session state automatically, so you don't have to.

See Also:
application.SessionStorage#save, application.SessionStorage#restore, ApplicationContext.getSessionStorage(), ApplicationContext#setApplicationId, ApplicationContext#setVendorId

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jdesktop.application.Application
Application.ExitListener
 
Constructor Summary
SessionStorageExample1()
           
 
Method Summary
static void main(java.lang.String[] args)
           
protected  void shutdown()
          Called when the application exits.
protected  void startup()
          Responsible for starting the application; for creating and showing the initial GUI.
 
Methods inherited from class org.jdesktop.application.Application
addExitListener, end, exit, exit, getContext, getExitListeners, getInstance, getInstance, hide, initialize, launch, quit, ready, removeExitListener, show
 
Methods inherited from class org.jdesktop.application.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SessionStorageExample1

public SessionStorageExample1()
Method Detail

startup

protected void startup()
Description copied from class: Application
Responsible for starting the application; for creating and showing the initial GUI.

This method is called by the static launch method, subclasses must override it. It runs on the event dispatching thread.

Specified by:
startup in class Application
See Also:
Application.launch(java.lang.Class, java.lang.String[]), Application.initialize(java.lang.String[]), Application.shutdown()

shutdown

protected void shutdown()
Description copied from class: Application
Called when the application exits. Subclasses may override this method to do any cleanup tasks that are neccessary before exiting. Obviously, you'll want to try and do as little as possible at this point. This method runs on the event dispatching thread.

Overrides:
shutdown in class Application
See Also:
Application.startup(), Application.ready(), Application.exit(), Application.addExitListener(org.jdesktop.application.Application.ExitListener)

main

public static void main(java.lang.String[] args)