org.jdesktop.application
Class View

java.lang.Object
  extended by org.jdesktop.application.AbstractBean
      extended by org.jdesktop.application.View
Direct Known Subclasses:
FrameView

public class View
extends AbstractBean

A View encapsulates a top-level Application GUI component, like a JFrame or an Applet, and its main GUI elements: a menu bar, tool bar, component, and a status bar. All of the elements are optional (although a View without a main component would be unusual). Views have a JRootPane, which is the root component for all of the Swing Window types as well as JApplet. Setting a View property, like menuBar or toolBar, just adds a component to the rootPane in a way that's defined by the View subclass. By default the View elements are arranged in a conventional way:

To show or hide a View you call the corresponding Application methods. Here's a simple example:

 class MyApplication extends SingleFrameApplication {
     @ppOverride protected void startup() {
         View view = getMainView();
         view.setComponent(createMainComponent());
         view.setMenuBar(createMenuBar());
         show(view);
     }
 }
 

The advantage of Views over just configuring a JFrame or JApplet directly, is that a View is more easily moved to an alternative top level container, like a docking framework.

See Also:
JRootPane, Application.show(View), Application.hide(View)

Constructor Summary
View(Application application)
          Construct an empty View object for the specified Application.
 
Method Summary
 Application getApplication()
          The Application that's responsible for showing/hiding this View.
 javax.swing.JComponent getComponent()
          The main {JComponent} for this View.
 ApplicationContext getContext()
          The ApplicationContext for the Application that's responsible for showing/hiding this View.
 javax.swing.JMenuBar getMenuBar()
          The main {JMenuBar} for this View.
 ResourceMap getResourceMap()
          The ResourceMap for this View.
 javax.swing.JRootPane getRootPane()
          The JRootPane for this View.
 javax.swing.JComponent getStatusBar()
           
 javax.swing.JToolBar getToolBar()
           
 java.util.List<javax.swing.JToolBar> getToolBars()
           
 void setComponent(javax.swing.JComponent component)
          Set the single main Component for this View.
 void setMenuBar(javax.swing.JMenuBar menuBar)
           
 void setStatusBar(javax.swing.JComponent statusBar)
           
 void setToolBar(javax.swing.JToolBar toolBar)
           
 void setToolBars(java.util.List<javax.swing.JToolBar> toolBars)
           
 
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

View

public View(Application application)
Construct an empty View object for the specified Application.

Parameters:
application - the Application responsible for showing/hiding this View
See Also:
Application.show(View), Application.hide(View)
Method Detail

getApplication

public final Application getApplication()
The Application that's responsible for showing/hiding this View.

Returns:
the Application that owns this View
See Also:
getContext(), Application.show(View), Application.hide(View)

getContext

public final ApplicationContext getContext()
The ApplicationContext for the Application that's responsible for showing/hiding this View. This method is just shorthand for getApplication().getContext().

Returns:
the Application that owns this View
See Also:
getApplication(), Application.show(View), Application.hide(View)

getResourceMap

public ResourceMap getResourceMap()
The ResourceMap for this View. This method is just shorthand for getContext().getResourceMap(getClass(), View.class).

Returns:
The ResourceMap for this View
See Also:
getContext()

getRootPane

public javax.swing.JRootPane getRootPane()
The JRootPane for this View. All of the components for this View must be added to its rootPane. Most applications will do so by setting the View's component, menuBar, toolBar, and statusBar properties.

Returns:
The rootPane for this View
See Also:
setComponent(javax.swing.JComponent), setMenuBar(javax.swing.JMenuBar), setToolBar(javax.swing.JToolBar), setStatusBar(javax.swing.JComponent)

getComponent

public javax.swing.JComponent getComponent()
The main {JComponent} for this View.

Returns:
The component for this View
See Also:
setComponent(javax.swing.JComponent)

setComponent

public void setComponent(javax.swing.JComponent component)
Set the single main Component for this View. It's added to the BorderLayout.CENTER of the rootPane's contentPane. If the component property was already set, the old component is removed first.

This is a bound property. The default value is null.

Parameters:
component - The component for this View
See Also:
getComponent()

getMenuBar

public javax.swing.JMenuBar getMenuBar()
The main {JMenuBar} for this View.

Returns:
The menuBar for this View
See Also:
setMenuBar(javax.swing.JMenuBar)

setMenuBar

public void setMenuBar(javax.swing.JMenuBar menuBar)

getToolBars

public java.util.List<javax.swing.JToolBar> getToolBars()

setToolBars

public void setToolBars(java.util.List<javax.swing.JToolBar> toolBars)

getToolBar

public final javax.swing.JToolBar getToolBar()

setToolBar

public final void setToolBar(javax.swing.JToolBar toolBar)

getStatusBar

public javax.swing.JComponent getStatusBar()

setStatusBar

public void setStatusBar(javax.swing.JComponent statusBar)