Package org.jdesktop.application

# Class ApplicationContext

java.lang.Object
org.jdesktop.application.AbstractBean
org.jdesktop.application.ApplicationContext

public class ApplicationContext extends AbstractBean
A singleton that manages shared objects, like actions, resources, and tasks, for `Applications`.

`Applications` use `ApplicationContext`, via `Application.getContext()`, to access global values and services. The majority of the Swing Application Framework API can be accessed through `ApplicationContext`.

Author:
  Hans Muller (Hans.Muller@Sun.COM)
See Also:
  - `Application`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`ApplicationContext()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addTaskService(TaskService taskService)`
Register a new TaskService with the application.
`final ActionManager`
`getActionManager()`
Return this application's ActionManager.
`final ApplicationActionMap`
`getActionMap()`
Returns the shared `ActionMap` chain for the entire `Application`.
`final ApplicationActionMap`
`getActionMap(Class actionsClass, Object actionsObject)`
Returns the `ApplicationActionMap` chain for the specified actions class and target object.
`final ApplicationActionMap`
`getActionMap(Object actionsObject)`
Defined as `getActionMap(actionsObject.getClass(), actionsObject)`.
`final Application`
`getApplication()`
The `Application` singleton, or null if `launch` hasn't been called yet.
`final Class`
`getApplicationClass()`
Returns the application's class or null if the application hasn't been launched and this property hasn't been set.
`Clipboard`
`getClipboard()`
Return a shared `Clipboard`.
`JComponent`
`getFocusOwner()`
Returns the application's focus owner.
`final LocalStorage`
`getLocalStorage()`
The shared `LocalStorage` object.
`final ResourceManager`
`getResourceManager()`
The application's `ResourceManager` provides read-only cached access to resources in ResourceBundles via the `ResourceMap` class.
`final ResourceMap`
`getResourceMap()`
Returns the `chain` of ResourceMaps that's shared by the entire application, beginning with the one defined for the Application class, i.e.
`final ResourceMap`
`getResourceMap(Class cls)`
Returns a `chain` of two or more ResourceMaps.
`final ResourceMap`
`getResourceMap(Class startClass, Class stopClass)`
Returns a `chain` of two or more ResourceMaps.
`final SessionStorage`
`getSessionStorage()`
The shared `SessionStorage` object.
`final TaskMonitor`
`getTaskMonitor()`
Returns a shared TaskMonitor object.
`final TaskService`
`getTaskService()`
Returns the default TaskService, i.e.
`TaskService`
`getTaskService(String name)`
Look up a task service by name.
`List<TaskService>`
`getTaskServices()`
Returns a read-only view of the complete list of TaskServices.
`void`
`removeTaskService(TaskService taskService)`
Unregister a previously registered TaskService.
`protected void`
`setActionManager(ActionManager actionManager)`
Change this application's `ActionManager`.
`final void`
`setApplicationClass(Class applicationClass)`
Called by `Application.launch()` to record the application's class.
`protected void`
`setLocalStorage(LocalStorage localStorage)`
The shared `LocalStorage` object.
`protected void`
`setResourceManager(ResourceManager resourceManager)`
Change this application's `ResourceManager`.
`protected void`
`setSessionStorage(SessionStorage sessionStorage)`
The shared `SessionStorage` object.

### 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 Details

### ApplicationContext

protected ApplicationContext()

## Method Details

### getApplicationClass

public final Class getApplicationClass()
Returns the application's class or null if the application hasn't been launched and this property hasn't been set. Once the application has been launched, the value returned by this method is the same as `getApplication().getClass()`.

Returns:
  the application's class or null
See Also:
  - `setApplicationClass(java.lang.Class)`
  - `getApplication()`

### setApplicationClass

public final void setApplicationClass(Class applicationClass)
Called by `Application.launch()` to record the application's class.

This method is only intended for testing, or design time configuration. Normal applications shouldn't need to call it directly.

Parameters:
  `applicationClass` -
See Also:
  - `getApplicationClass()`

### getApplication

public final Application getApplication()
The `Application` singleton, or null if `launch` hasn't been called yet.

Returns:
  the launched Application singleton.
See Also:
  - `Application.launch(java.lang.Class<T>, java.lang.String[])`

### getResourceManager

public final ResourceManager getResourceManager()
The application's `ResourceManager` provides read-only cached access to resources in ResourceBundles via the `ResourceMap` class.

Returns:
  this application's ResourceManager.
See Also:
  - `getResourceMap(Class, Class)`

### setResourceManager

protected void setResourceManager(ResourceManager resourceManager)
Change this application's `ResourceManager`. An `ApplicationContext` subclass that wanted to fundamentally change the way `ResourceMaps` were created and cached could replace this property in its constructor.

Throws an IllegalArgumentException if resourceManager is null.

Parameters:
  `resourceManager` - the new value of the resourceManager property.
See Also:
  - `getResourceMap(Class, Class)`
  - `getResourceManager()`

### getResourceMap

public final ResourceMap getResourceMap(Class cls)
Returns a `chain` of two or more ResourceMaps. The first encapsulates the ResourceBundles defined for the specified class, and its parent encapsulates the ResourceBundles defined for the entire application.

This is just a convenience method that calls `ResourceManager.getResourceMap()`. It's defined as:

     return getResourceManager().getResourceMap(cls, cls);

Parameters:
  `cls` - the class that defines the location of ResourceBundles
Returns:
  a `ResourceMap` that contains resources loaded from `ResourceBundles` found in the resources subpackage of the specified class's package.
See Also:
  - `ResourceManager.getResourceMap(Class)`

### getResourceMap

public final ResourceMap getResourceMap(Class startClass, Class stopClass)
Returns a `chain` of two or more ResourceMaps. The first encapsulates the ResourceBundles defined for the all of the classes between `startClass` and `stopClass` inclusive. It's parent encapsulates the ResourceBundles defined for the entire application.

This is just a convenience method that calls `ResourceManager.getResourceMap()`. It's defined as:

     return getResourceManager().getResourceMap(startClass, stopClass);

Parameters:
  `startClass` - the first class whose ResourceBundles will be included
  `stopClass` - the last class whose ResourceBundles will be included
Returns:
  a `ResourceMap` that contains resources loaded from `ResourceBundles` found in the resources subpackage of the specified class's package.
See Also:
  - `ResourceManager.getResourceMap(Class, Class)`

### getResourceMap

public final ResourceMap getResourceMap()
Returns the `chain` of ResourceMaps that's shared by the entire application, beginning with the one defined for the Application class, i.e. the value of the `applicationClass` property.

This is just a convenience method that calls `ResourceManager.getResourceMap()`. It's defined as:

     return getResourceManager().getResourceMap();

Returns:
  the Application's ResourceMap
See Also:
  - `ResourceManager.getResourceMap()`
  - `getApplicationClass()`

### getActionManager

public final ActionManager getActionManager()
Return this application's ActionManager.

Returns:
  this application's ActionManager.
See Also:
  - `getActionMap(Object)`

### setActionManager

protected void setActionManager(ActionManager actionManager)
Change this application's `ActionManager`. An `ApplicationContext` subclass that wanted to fundamentally change the way `ActionManagers` were created and cached could replace this property in its constructor.

Throws an IllegalArgumentException if actionManager is null.

Parameters:
  `actionManager` - the new value of the actionManager property.
See Also:
  - `getActionManager()`
  - `getActionMap(Object)`

### getActionMap

public final ApplicationActionMap getActionMap()
Returns the shared `ActionMap` chain for the entire `Application`.

This is just a convenience method that calls `ActionManager.getActionMap()`. It's defined as:

     return getActionManager().getActionMap()

Returns:
  the `ActionMap` chain for the entire `Application`.
See Also:
  - `ActionManager.getActionMap()`

### getActionMap

public final ApplicationActionMap getActionMap(Class actionsClass, Object actionsObject)
Returns the `ApplicationActionMap` chain for the specified actions class and target object.

This is just a convenience method that calls `ActionManager.getActionMap(Class, Object)`. It's defined as:

     return getActionManager().getActionMap(actionsClass, actionsObject)

Parameters:
  `actionsClass` -
  `actionsObject` -
Returns:
  the `ActionMap` chain for the entire `Application`.
See Also:
  - `ActionManager.getActionMap(Class, Object)`

### getActionMap

public final ApplicationActionMap getActionMap(Object actionsObject)
Defined as `getActionMap(actionsObject.getClass(), actionsObject)`.

Parameters:
  `actionsObject` -
Returns:
  the `ActionMap` for the specified object
See Also:
  - `getActionMap(Class, Object)`

### getLocalStorage

public final LocalStorage getLocalStorage()
The shared `LocalStorage` object.

Returns:
  the shared `LocalStorage` object.

### setLocalStorage

protected void setLocalStorage(LocalStorage localStorage)
The shared `LocalStorage` object.

Parameters:
  `localStorage` - the shared `LocalStorage` object.

### getSessionStorage

public final SessionStorage getSessionStorage()
The shared `SessionStorage` object.

Returns:
  the shared `SessionStorage` object.

### setSessionStorage

protected void setSessionStorage(SessionStorage sessionStorage)
The shared `SessionStorage` object.

Parameters:
  `sessionStorage` - the shared `SessionStorage` object.

### getClipboard

public Clipboard getClipboard()
Return a shared `Clipboard`.

Returns:
  A shared `Clipboard`.

### getFocusOwner

public JComponent getFocusOwner()
Returns the application's focus owner.

Returns:
  The application's focus owner.

### addTaskService

public void addTaskService(TaskService taskService)
Register a new TaskService with the application. The task service then be retrieved by name via `getTaskService(String)`.

Parameters:
  `taskService` - Task service to register

### removeTaskService

public void removeTaskService(TaskService taskService)
Unregister a previously registered TaskService. The task service is not shut down.

Parameters:
  `taskService` - TaskService to unregister

### getTaskService

public TaskService getTaskService(String name)
Look up a task service by name.

Parameters:
  `name` - Name of the task service to retrieve.
Returns:
  Task service found, or null if no service of that name found

### getTaskService

public final TaskService getTaskService()
Returns the default TaskService, i.e. the one named "default": `return getTaskService("default")`. The `ApplicationAction actionPerformed` method executes background `Tasks` on the default TaskService. Application's can launch Tasks in the same way, e.g.

     Application.getInstance().getContext().getTaskService().execute(myTask);

Returns:
  the default TaskService.
See Also:
  - `getTaskService(String)`

### getTaskServices

public List<TaskService> getTaskServices()
Returns a read-only view of the complete list of TaskServices.

Returns:
  a list of all of the TaskServices.
See Also:
  - `addTaskService(org.jdesktop.application.TaskService)`
  - `removeTaskService(org.jdesktop.application.TaskService)`

### getTaskMonitor

public final TaskMonitor getTaskMonitor()
Returns a shared TaskMonitor object. Most applications only need one TaskMonitor for the sake of status bars and other status indicators.

Returns:
  the shared TaskMonitor object.