org.homeunix.thecave.moss.swing
Class MossFrame

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.homeunix.thecave.moss.swing.MossFrame
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants, StandardContainer, StandardWindow
Direct Known Subclasses:
AboutFrame, HiddenMossFrame, MossDocumentFrame, PreferencesFrame

public class MossFrame
extends javax.swing.JFrame
implements StandardWindow, StandardContainer

AbstractFrame is core of the Moss framework for creating easy to use and powerful windows. If you want extra functions for Document based windows, try using AbstractDocumentFrame.

Author:
wyatt
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static long serialVersionUID
           
 
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
MossFrame()
          Creates a new MossFrame.
MossFrame(java.lang.Object key)
          Creates a new MossFrame.
 
Method Summary
 boolean canClose()
          Checks if you can close the window.
 void clear()
          Override this to give your window the ability to reset to a known clear state.
 java.lang.Object closeWindow()
          The method used to close the window.
 void closeWindowWithoutPrompting()
          Forces the window to close, without giving the user the option to save.
 void init()
          The method to initialize the container.
 void initPostPack()
          A method which is called after the pack() method in openWindow, but before the setVisible(true).
 void openWindow()
          The method which is run when the window is opened.
 void openWindow(boolean closeExisting)
           
 void openWindow(java.awt.Dimension dimension, java.awt.Point position)
          The method which is run when the window is opened.
 void openWindow(java.awt.Dimension dimension, java.awt.Point position, boolean closeExisting)
           
 void requestFocusInApplication()
          Request that this frame gets focus.
 void setJMenuBar(javax.swing.JMenuBar menubar)
           
 void updateButtons()
          The method to update buttons enabled / disabled state based on window state.
 void updateContent()
          The method to update components on screen when content changes.
 void updateMenus()
          Updates the AbstractMenuBar and all sub AbstractMenu* objects associated with this frame.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, 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, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, 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, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, 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 java.awt.MenuContainer
getFont, postEvent
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values
Constructor Detail

MossFrame

public MossFrame()
Creates a new MossFrame.


MossFrame

public MossFrame(java.lang.Object key)
Creates a new MossFrame.

Parameters:
key - Key associated with the frame. You are guaranteed to only have at most one frame with the same key. If you try to open a new frame with the same key, it will cancel the creation and set focus to the existing frame. If key is null, it is ignored.
Method Detail

openWindow

public void openWindow()
                throws WindowOpenException
Description copied from interface: StandardWindow
The method which is run when the window is opened. First calls init(), then updateContents(), then updateButtons(). Finally, it packs the frame and sets it visible.

Specified by:
openWindow in interface StandardWindow
Throws:
WindowOpenException - If there was a problem opening the window. Usually this is due to the same window being opened already (as determined by the key, in AbstractFrame derived windows.)

openWindow

public void openWindow(java.awt.Dimension dimension,
                       java.awt.Point position)
                throws WindowOpenException
Description copied from interface: StandardWindow
The method which is run when the window is opened. First calls init(), then updateContents(), then updateButtons(). Finally, it packs the frame and sets it visible. The window is positioned according to the dimension and positioning values given.

Specified by:
openWindow in interface StandardWindow
Throws:
WindowOpenException - If there was a problem opening the window. Usually this is due to the same window being opened already (as determined by the key, in AbstractFrame derived windows.)

openWindow

public void openWindow(boolean closeExisting)
                throws WindowOpenException
Throws:
WindowOpenException

openWindow

public void openWindow(java.awt.Dimension dimension,
                       java.awt.Point position,
                       boolean closeExisting)
                throws WindowOpenException
Throws:
WindowOpenException

canClose

public boolean canClose()
Checks if you can close the window. The default implementation returns true always; you can override this to check conditions, and perhaps prompt the user for a save or something before returning. If this method returns false, the close operation is cancelled.

Returns:
Returns true if you can close the window, false otherwise.

closeWindow

public java.lang.Object closeWindow()
Description copied from interface: StandardWindow
The method used to close the window. Can return an object if desired; if you don't need to return anything to the calling method, just return null.

Specified by:
closeWindow in interface StandardWindow
Returns:

closeWindowWithoutPrompting

public void closeWindowWithoutPrompting()
Forces the window to close, without giving the user the option to save.


clear

public void clear()
Description copied from interface: StandardContainer
Override this to give your window the ability to reset to a known clear state.

Specified by:
clear in interface StandardContainer

initPostPack

public void initPostPack()
Description copied from interface: StandardWindow
A method which is called after the pack() method in openWindow, but before the setVisible(true). This allows you to do some initialization based on the post-packed size of components.

Specified by:
initPostPack in interface StandardWindow

updateButtons

public void updateButtons()
Description copied from interface: StandardContainer
The method to update buttons enabled / disabled state based on window state. This method is generally called from updateContent() as part of that routine; it can also be called from action listeners for various controls. As this tends to be called frequently, keep it as small as possible.

Specified by:
updateButtons in interface StandardContainer

updateContent

public void updateContent()
Description copied from interface: StandardContainer
The method to update components on screen when content changes. Essentially forces a complete redraw of the screen. This can potentially be a time consuming operation, so you should generally use this method sparingly. Do not put anything in updateContent which cannot be called repeatedly, such as code for loading data from disk, initializing listeners, etc. While this code is probably not to be called often, there is no guarantee that it will only be called once. Put code which can only be called once into init().

Specified by:
updateContent in interface StandardContainer

init

public void init()
Description copied from interface: StandardContainer
The method to initialize the container. This should do at minimum the following: a) Create and add apropriate UI controls (buttons, panels, etc). This is generally done in the View level. b) Create and add actions to the UI controls. This is generally done at the Controller level. In short, init() should do everything required to make a fully function window, other than pack(), setVisible(true), and any positioning methods as required for a given window. init() MUST only be called once. You should not call it directly, unless you do not call openWindow().

Specified by:
init in interface StandardContainer

setJMenuBar

public void setJMenuBar(javax.swing.JMenuBar menubar)
Overrides:
setJMenuBar in class javax.swing.JFrame

updateMenus

public void updateMenus()
Updates the AbstractMenuBar and all sub AbstractMenu* objects associated with this frame.


requestFocusInApplication

public void requestFocusInApplication()
Description copied from interface: StandardWindow
Request that this frame gets focus. This is more strong than the requestFocusInWindow() method, and should succeed more often. The default implementation is to call setVisible(true), followed by requestFocusInWindow().

Specified by:
requestFocusInApplication in interface StandardWindow