Class 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:
    • menuBar - becomes the rootPane's JMenuBar
    • toolBar - added to BorderLayout.NORTH of the rootPane's contentPane
    • component - added to BorderLayout.CENTER of the rootPane's contentPane
    • statusBar - added to BorderLayout.SOUTH of the rootPane's contentPane

    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)
    • Method Detail

      • getResourceMap

        public ResourceMap getResourceMap()
        Gets ResourceMap for this View. This method invokes getContext().getResourceMap(getClass(), View.class). The result is cached.
        Returns:
        The ResourceMap for this View
        See Also:
        getContext()
      • getComponent

        public javax.swing.JComponent getComponent()
        Returns 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)
        Sets 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()
        Returns 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)
        Sets the menu bar for this View.

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

        Parameters:
        menuBar - The menuBar for this View
        See Also:
        getMenuBar()
      • getToolBars

        public java.util.List<javax.swing.JToolBar> getToolBars()
        Returns the list of tool bars for this View
        Returns:
        The list of tool bars
      • setToolBars

        public void setToolBars​(java.util.List<javax.swing.JToolBar> toolBars)
        Sets the tool bars for this View

        This is a bound property. The default value is an empty list.

        Parameters:
        toolBars -
        See Also:
        setToolBar(JToolBar), getToolBars()
      • setToolBar

        public final void setToolBar​(javax.swing.JToolBar toolBar)
        Sets the only tool bar for this View.

        This is a bound property.

        Parameters:
        toolBar - The JToolBar for this view. If null resets the tool bar.
        See Also:
        getToolBar(), setToolBars(List), getToolBars()
      • getStatusBar

        public javax.swing.JComponent getStatusBar()
        Returns the Status bar for this View.
        Returns:
        The status bar JComponent for this View
      • setStatusBar

        public void setStatusBar​(javax.swing.JComponent statusBar)
        Sets the status bar for this View. The status bar is a generic JComponent.
        Parameters:
        statusBar - The status bar JComponent for this View