org.eodisp.ui.common.base
Class EodispMainFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.eodisp.ui.common.base.EodispMainFrame
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, ActionSourceProvider
Direct Known Subclasses:
MmMainFrame, RmMainFrame, SmMainFrame

public abstract class EodispMainFrame
extends javax.swing.JFrame
implements ActionSourceProvider

The main frame of an application is the container for all other frames. It holds the main menu bar and the tool bar and embeds all other frames.

The connection between the EodispMainFrame and Swing is, that the EodispMainFrame actually extends the Swing top container JFrame. This might be a bit confusing, since the EODiSP also uses org.eodisp.ui.common.base.EodispFrames. This frames, however, are not connected with any Swing top container component. See the documentation for further information. Therefore, it must be clearly distinguished between the main frame and an ordinary frame, because the former is a Swing top level container, whereas the latter is a construct used only in the EODiSP framework.

The main frame is responsible for the layout of all embedded frames, views, and other components. This must be implemented in the specific main frame for an application. It also provides some functions to show the application and place it on the screen as appropriate. Generally speaking, the main frame is the frame around the whole application and is responsible for handling the obvious tasks such as showing the application, handling menu and tool bar.

Since a main frame has always some menu bar items (such as Exit, etc.), it also implements the ActionSourceProvider. However, the actual implementation is left to the application specific main frame.

This class should be sub-classed by a specific main frame implementation to provide the implementation of the abstract methods. Every application should have exactly one main frame.

Version:
$Id:EodispMainFrame.java 2047 2006-05-09 12:20:54Z eglimi $
Author:
eglimi
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
protected EodispMainFrame()
          Default constructor.
 
Method Summary
abstract  void addDynamicView(EodispView dynView)
          This adds a dynamic view to the main frame.
 void addMenuBar()
          Sets the menu bar for this application.
 void addRootWindow(net.infonode.docking.RootWindow rootWindow)
          Adds the root window to the main frame.
 void addToolBar()
          Sets the tool bar for this application.
abstract  void registerActions()
          Registers all actions defined by this component in the EodispActionRegistry for further usage.
protected  void setBehaviour()
          Sets specific behaviour such as layout or size for this frame.
 void showMainFrame()
          Shows the main frame on the screen.All components should be built and included in the main frame before showing it.
abstract  void updateTitle(java.lang.String... strings)
          Updates the title of the main frame.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eodisp.ui.common.actions.ActionSourceProvider
updateRegistrations
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Constructor Detail

EodispMainFrame

protected EodispMainFrame()
Default constructor. Should only be instantiated from sub-classes.

Method Detail

registerActions

public abstract void registerActions()
Description copied from interface: ActionSourceProvider
Registers all actions defined by this component in the EodispActionRegistry for further usage.

Specified by:
registerActions in interface ActionSourceProvider
See Also:
ActionSourceProvider.registerActions()

updateTitle

public abstract void updateTitle(java.lang.String... strings)
Updates the title of the main frame. The default string is defined by the main frame itself. In addition, a list of strings can be given. These strings will be appended to the title.

For example, given a list of the following strings as parameter

The title would look like

    Main Title - Locale: en - User: Ursula
 

Parameters:
strings - A list of strings to be appended to the title of the main frame, or no parameter, if the default title should be displayed.

showMainFrame

public void showMainFrame()
Shows the main frame on the screen.All components should be built and included in the main frame before showing it. The application controller is responsible to delegate all initialization to other controller before it asks the main frame to show itself on the screen.


addMenuBar

public void addMenuBar()
Sets the menu bar for this application. The menu bar is referenced directly by the main frame of the application.

Creation of the menu bar is done by the EodispMenuManager class. It will return the complete menu bar, ready to be included in the main frame.

Prior to calling this method, all frames and views that contribute to the menu or tool bar, should have registered their actions in the EodispActionRegistry.

This method should only be called before showing the main frame on the screen. Tool bar items that are added dynamically at runtime are directly handled by the EodispMenuManager.


addToolBar

public void addToolBar()
Sets the tool bar for this application. The tool bar resides on the main panel and its default location is not (top, just under the menu bar). An empty tool bar will be displayed if no items are present. This is because items can be added to the tool bar during runtime. However, the tool bar will be invisible if no items are present. Creation of the tool bar is done by the EodispMenuManager class. It will return the complete tool bar, ready to be included in the main frame.

Prior to calling this method, all frames and views that contribute to the menu or tool bar, should have registered their actions in the EodispActionRegistry.

This method should only be called before showing the main frame on the screen. Tool bar items that are added dynamically at runtime are directly handled by the EodispMenuManager.


addRootWindow

public void addRootWindow(net.infonode.docking.RootWindow rootWindow)
Adds the root window to the main frame. The root window will contain all views of the application and is therefore, the content panel for all components, except for the tool bar.

The root window is placed in the center of the main panel.

Parameters:
rootWindow -

setBehaviour

protected void setBehaviour()
Sets specific behaviour such as layout or size for this frame. This is the standard behaviour of an EODiSP application, but it can be overridden by sub-classes.

Not that the default close operation is to do nothing. This means that concrete applications must take care of shutting down an application properly. This means, releasing all resources and exit the application.


addDynamicView

public abstract void addDynamicView(EodispView dynView)
This adds a dynamic view to the main frame. It should be placed in a appropriate place.

Parameters:
dynView - The view to be added.