uk.ac.essex.common.gui.frame
Class MultiFrameDesktop

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 uk.ac.essex.common.gui.frame.ApplicationFrameImpl
                          extended by uk.ac.essex.common.gui.frame.MultiFrameDesktop
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, ApplicationFrame, PersistentAppFrame
Direct Known Subclasses:
ButtonPanelDesktopFrame, MultiFrameButtonPanelDesktop

public class MultiFrameDesktop
extends ApplicationFrameImpl
implements ApplicationFrame, PersistentAppFrame, java.awt.event.ActionListener

Provides a multi-frame desktop environment with persistent capabilities - in that it remembers its previous size and location (using java Preferences. It makes use of a custom JDesktop that expands as the windows are dragged and provides buttons for switching between the internal windows.
Date: Apr 5, 2002

See Also:
You should have received a copy of Lesser GNU public license with this code. If not please visit this site , 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
protected  java.util.HashMap<uk.ac.essex.common.gui.frame.MultiFrameDesktop.PressableButton,javax.swing.JInternalFrame> buttonToFrame
          Maps: JButton --> JInternalFrame
protected  uk.ac.essex.common.gui.frame.MultiFrameDesktop.PressableButton currentButton
           
static int DEFAULT_BUTTON_HEIGHT
           
static int DEFAULT_BUTTON_WIDTH
           
protected static java.awt.Color DESKTOP_PANE_COLOR
           
protected  MDIDesktopPane desktopPane
           
protected  javax.swing.JScrollPane desktopScrollPane
           
protected  javax.swing.event.InternalFrameListener frameListener
          The internal frame listener to handle closing of the frames
protected  java.util.HashMap<javax.swing.JInternalFrame,uk.ac.essex.common.gui.frame.MultiFrameDesktop.PressableButton> frameToButton
          Maps: JInternalFrame --> JButton
protected  java.util.HashMap<javax.swing.JInternalFrame,javax.swing.JPanel> frameToView
          Maps: JInternalFrame --> JPanel view
protected  javax.swing.JPanel mfdContentPane
           
protected  java.util.Set<javax.swing.JPanel> viewSet
          Stores all the views that are added to this panel
protected  java.util.HashMap<javax.swing.JPanel,javax.swing.JInternalFrame> viewToInternaFrame
          Maps: JPanel view --> JInternalFrame
 
Fields inherited from class uk.ac.essex.common.gui.frame.ApplicationFrameImpl
content, contentPane, DEFAULT_HEIGHT, DEFAULT_TOOLBAR_KEY, DEFAULT_WIDTH, DEFAULT_X, DEFAULT_Y, defaultToolBar, localMenuBar, MIN_HEIGHT, MIN_WIDTH, statusBarLabel, statusPanel, toolBarPanel
 
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 uk.ac.essex.common.gui.ApplicationFrame
BOTTOM, LEFT, RIGHT, TOP
 
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
MultiFrameDesktop(Application application, ApplicationFrameParameters parameters)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Invoked when an action occurs.
 void addJMenu(javax.swing.JMenu menuToAdd)
          Adds a JMenu to the menu bar
 void addView(javax.swing.JPanel view, java.lang.String title)
          Update the GUI view on the data stored in File.
 javax.swing.JButton getCurrentButton()
           
 javax.swing.JInternalFrame getCurrentFrame()
           
 MDIDesktopPane getDesktopPane()
           
 void init()
          Component initialization
static void main(java.lang.String[] argStrings)
          Main for testing
 void removeView(javax.swing.JPanel view)
          Remove a view
 void restoreLocation(java.awt.Rectangle defaults)
           
 void saveLocation()
          Save the current location of the window to the preferences
 
Methods inherited from class uk.ac.essex.common.gui.frame.ApplicationFrameImpl
addFrameListener, addToolBar, addToToolBar, addToToolBar, addViewChangeListener, center, destroy, dispose, finalize, fireFrameClosing, fireFrameOpening, fireViewChange, fireViewClosed, getApplication, getContent, getDefaultToolBar, getFrame, getJMenuBar, getLocalMenuBar, getStatusBarLabel, hasJMenuBar, isPersistent, removeFrameListener, removeToolBar, setContent, setJMenuBar, setLocalMenuBar, setPersistent, setProgress, setStatus
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, 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, 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, paint, 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, 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, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface uk.ac.essex.common.gui.ApplicationFrame
addFrameListener, addToolBar, addToToolBar, addToToolBar, addViewChangeListener, center, destroy, getApplication, getDefaultToolBar, getFrame, getJMenuBar, getStatusBarLabel, hasJMenuBar, isPersistent, removeFrameListener, removeToolBar, setJMenuBar, setPersistent, setProgress, setStatus, setTitle
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

DEFAULT_BUTTON_WIDTH

public static final int DEFAULT_BUTTON_WIDTH
See Also:
Constant Field Values

DEFAULT_BUTTON_HEIGHT

public static final int DEFAULT_BUTTON_HEIGHT
See Also:
Constant Field Values

DESKTOP_PANE_COLOR

protected static final java.awt.Color DESKTOP_PANE_COLOR

desktopScrollPane

protected javax.swing.JScrollPane desktopScrollPane

viewToInternaFrame

protected java.util.HashMap<javax.swing.JPanel,javax.swing.JInternalFrame> viewToInternaFrame
Maps: JPanel view --> JInternalFrame


frameToView

protected java.util.HashMap<javax.swing.JInternalFrame,javax.swing.JPanel> frameToView
Maps: JInternalFrame --> JPanel view


buttonToFrame

protected java.util.HashMap<uk.ac.essex.common.gui.frame.MultiFrameDesktop.PressableButton,javax.swing.JInternalFrame> buttonToFrame
Maps: JButton --> JInternalFrame


frameToButton

protected java.util.HashMap<javax.swing.JInternalFrame,uk.ac.essex.common.gui.frame.MultiFrameDesktop.PressableButton> frameToButton
Maps: JInternalFrame --> JButton


viewSet

protected java.util.Set<javax.swing.JPanel> viewSet
Stores all the views that are added to this panel


frameListener

protected javax.swing.event.InternalFrameListener frameListener
The internal frame listener to handle closing of the frames


currentButton

protected uk.ac.essex.common.gui.frame.MultiFrameDesktop.PressableButton currentButton

desktopPane

protected MDIDesktopPane desktopPane

mfdContentPane

protected javax.swing.JPanel mfdContentPane
Constructor Detail

MultiFrameDesktop

public MultiFrameDesktop(Application application,
                         ApplicationFrameParameters parameters)
                  throws InitialisationException
Parameters:
application -
parameters -
Throws:
InitialisationException
Method Detail

getCurrentButton

public javax.swing.JButton getCurrentButton()

getCurrentFrame

public javax.swing.JInternalFrame getCurrentFrame()

getDesktopPane

public MDIDesktopPane getDesktopPane()
Returns:

restoreLocation

public void restoreLocation(java.awt.Rectangle defaults)
Specified by:
restoreLocation in interface PersistentAppFrame
Overrides:
restoreLocation in class ApplicationFrameImpl

saveLocation

public void saveLocation()
Save the current location of the window to the preferences

Specified by:
saveLocation in interface PersistentAppFrame
Overrides:
saveLocation in class ApplicationFrameImpl

init

public void init()
          throws InitialisationException
Component initialization

Specified by:
init in interface ApplicationFrame
Overrides:
init in class ApplicationFrameImpl
Throws:
InitialisationException

addView

public void addView(javax.swing.JPanel view,
                    java.lang.String title)
Update the GUI view on the data stored in File.

Specified by:
addView in interface ApplicationFrame
Parameters:
view - - A panel that is a view for the application

removeView

public void removeView(javax.swing.JPanel view)
Remove a view

Specified by:
removeView in interface ApplicationFrame
Parameters:
view - - The view to remove

addJMenu

public void addJMenu(javax.swing.JMenu menuToAdd)
Description copied from interface: ApplicationFrame
Adds a JMenu to the menu bar

Specified by:
addJMenu in interface ApplicationFrame
Parameters:
menuToAdd - - The menu to add

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Invoked when an action occurs.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

main

public static void main(java.lang.String[] argStrings)
Main for testing

Parameters:
argStrings -