cdx.scorebot.util.swing
Class FileMenuFrame

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 cdx.scorebot.util.swing.FileMenuFrame
All Implemented Interfaces:
FileOpener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
FileMenuXMLBasedFrame

public abstract class FileMenuFrame
extends javax.swing.JFrame
implements FileOpener

Defines a menu bar with basic File-Open-Save-Save As functionality.

Author:
David Underhill
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
protected  java.lang.String baseTitle
          holds the base title of the GUI
protected  java.lang.String dialogTxt
          text of the open/save dialog box
protected  java.lang.String dialogTxtShort
          short text of the open/save dialog box
protected  javax.swing.filechooser.FileFilter extFilter
          what kinds of files to accept
protected  javax.swing.JMenuItem mnuExit
           
protected  javax.swing.JMenu mnuFile
           
protected  javax.swing.JMenuItem mnuNew
           
protected  javax.swing.JMenuItem mnuOpen
           
protected  javax.swing.JMenuItem mnuSave
           
protected  javax.swing.JMenuItem mnuSaveAs
           
protected  javax.swing.JSeparator mnuSep
           
protected  javax.swing.JMenuItem[] recentlyUsedFiles
          stores the menus used to hold recently used files
protected  boolean saved
          whether or not the current template changes have been saved to file
protected  java.lang.String saveExtension
          extension to append to saved files
protected  SettingsFile settings
          holds application settings
protected  java.lang.String SETTINGS_FN
          where settings are saved
 
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
FileMenuFrame(java.lang.String settingsFN)
          Creates new frame which uses the specified file for settings testing
FileMenuFrame(java.lang.String settingsFN, java.lang.String saveExtension)
          Creates new frame which uses the specified file for settings testing and the specified extension for saving.
FileMenuFrame(java.lang.String settingsFN, java.lang.String dialogTxtShort, java.lang.String dialogTxt, int numRecentMenus, java.lang.String ext)
          Creates new frame which uses the specified file for settings testing and the specified extension(s) for saving and loading.
FileMenuFrame(java.lang.String settingsFN, java.lang.String saveExtension, java.lang.String dialogTxtShort, java.lang.String dialogTxt, int numRecentMenus, javax.swing.filechooser.FileFilter filter)
          Creates new frame which uses the specified file for settings testing and the specified extension(s) for saving and loading.
 
Method Summary
 boolean checkSaveStatus()
          If changes have been made, it prompts the user to ask whether or not they want to save their changes or cancel the action which caused this to occur.
 boolean dontCheckedSavedStatus()
          gets whether or not this JFrame needs to worry about saving changes
 void exit()
          close the program
 java.lang.String getFilename()
          gets the current filename
 boolean isSaved()
           
abstract  void newFile()
          Creates a new file
 void newFileProcessor()
          Creates a new file
 void openFile()
          Open an object with a filename chosen by the user.
abstract  boolean openFile(java.lang.String fn)
          Open an object with the specified filename.
 void openFileFromFN(java.lang.String fn)
          Open an object with the specified filename.
 void saveFile()
          Saves the current object with the current filename.
abstract  boolean saveFile(java.lang.String fn)
          Saves the current object with the specified filename.
 void saveFileAs()
          Saves the current object with the current filename.
 void setDontCheckedSavedStatus(boolean dontCheckedSavedStatus)
          sets whether or not this JFrame needs to worry about saving changes
 void setFilename(java.lang.String filename)
          sets the current filename and updates the JFrame's title
 void setSaved(boolean saved)
           
 void setTeminateOnExit(boolean exitTerminatesTheApp)
          sets what to do on "exit" (true => terminate the process, false => dispose the JFrame)
 void setTitle(java.lang.String title)
          sets the base title of the JFrame
 boolean teminateOnExit()
          gets what to do on "exit" (true => terminate the process, false => dispose the JFrame)
 
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, 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 java.awt.MenuContainer
getFont, postEvent
 

Field Detail

recentlyUsedFiles

protected javax.swing.JMenuItem[] recentlyUsedFiles
stores the menus used to hold recently used files


saved

protected boolean saved
whether or not the current template changes have been saved to file


extFilter

protected javax.swing.filechooser.FileFilter extFilter
what kinds of files to accept


saveExtension

protected java.lang.String saveExtension
extension to append to saved files


dialogTxt

protected java.lang.String dialogTxt
text of the open/save dialog box


dialogTxtShort

protected java.lang.String dialogTxtShort
short text of the open/save dialog box


SETTINGS_FN

protected final java.lang.String SETTINGS_FN
where settings are saved


settings

protected SettingsFile settings
holds application settings


baseTitle

protected java.lang.String baseTitle
holds the base title of the GUI


mnuExit

protected javax.swing.JMenuItem mnuExit

mnuFile

protected javax.swing.JMenu mnuFile

mnuNew

protected javax.swing.JMenuItem mnuNew

mnuOpen

protected javax.swing.JMenuItem mnuOpen

mnuSave

protected javax.swing.JMenuItem mnuSave

mnuSaveAs

protected javax.swing.JMenuItem mnuSaveAs

mnuSep

protected javax.swing.JSeparator mnuSep
Constructor Detail

FileMenuFrame

public FileMenuFrame(java.lang.String settingsFN)
Creates new frame which uses the specified file for settings testing

Parameters:
settingsFN - where settings should be loaded/saved to

FileMenuFrame

public FileMenuFrame(java.lang.String settingsFN,
                     java.lang.String saveExtension)
Creates new frame which uses the specified file for settings testing and the specified extension for saving.

Parameters:
settingsFN - where settings should be loaded/saved to
saveExtension - the extension to append to saved files

FileMenuFrame

public FileMenuFrame(java.lang.String settingsFN,
                     java.lang.String dialogTxtShort,
                     java.lang.String dialogTxt,
                     int numRecentMenus,
                     java.lang.String ext)
Creates new frame which uses the specified file for settings testing and the specified extension(s) for saving and loading.

Parameters:
settingsFN - where settings should be loaded/saved to
dialogTxtShort - the text to show in a dialog box button (should be one or two words)
dialogTxt - the text to show in the dialog box
numRecentMenus - the number of recently used files to show
ext - the extension to use to restrict what files are shown in the open dialog

FileMenuFrame

public FileMenuFrame(java.lang.String settingsFN,
                     java.lang.String saveExtension,
                     java.lang.String dialogTxtShort,
                     java.lang.String dialogTxt,
                     int numRecentMenus,
                     javax.swing.filechooser.FileFilter filter)
Creates new frame which uses the specified file for settings testing and the specified extension(s) for saving and loading.

Parameters:
settingsFN - where settings should be loaded/saved to
saveExtension - the extension to append to saved files
dialogTxtShort - the text to show in a dialog box button (should be one or two words)
dialogTxt - the text to show in the dialog box
numRecentMenus - the number of recently used files to show
filter - the filter used to restrict what files are shown in the open dialog
Method Detail

checkSaveStatus

public boolean checkSaveStatus()
If changes have been made, it prompts the user to ask whether or not they want to save their changes or cancel the action which caused this to occur.

Returns:
false if the user wants to cancel the action which prompted this. This returns true if the user chooses no or if the user chooses yes (in which case save() is also called).

dontCheckedSavedStatus

public final boolean dontCheckedSavedStatus()
gets whether or not this JFrame needs to worry about saving changes


setDontCheckedSavedStatus

public final void setDontCheckedSavedStatus(boolean dontCheckedSavedStatus)
sets whether or not this JFrame needs to worry about saving changes


newFileProcessor

public void newFileProcessor()
Creates a new file


newFile

public abstract void newFile()
Creates a new file


openFile

public void openFile()
Open an object with a filename chosen by the user.


openFileFromFN

public void openFileFromFN(java.lang.String fn)
Open an object with the specified filename.

Specified by:
openFileFromFN in interface FileOpener
Parameters:
fn - the name and path of the file to open

openFile

public abstract boolean openFile(java.lang.String fn)
Open an object with the specified filename.

Parameters:
fn - the name and path of the file to open

saveFile

public void saveFile()
Saves the current object with the current filename.


saveFileAs

public void saveFileAs()
Saves the current object with the current filename.


saveFile

public abstract boolean saveFile(java.lang.String fn)
Saves the current object with the specified filename. If null, the user is prompted for a name.

Parameters:
fn - the name and path of the file to open

exit

public void exit()
close the program


teminateOnExit

public boolean teminateOnExit()
gets what to do on "exit" (true => terminate the process, false => dispose the JFrame)


setTeminateOnExit

public void setTeminateOnExit(boolean exitTerminatesTheApp)
sets what to do on "exit" (true => terminate the process, false => dispose the JFrame)


isSaved

public boolean isSaved()

setSaved

public void setSaved(boolean saved)

setTitle

public void setTitle(java.lang.String title)
sets the base title of the JFrame

Overrides:
setTitle in class java.awt.Frame

getFilename

public java.lang.String getFilename()
gets the current filename


setFilename

public void setFilename(java.lang.String filename)
sets the current filename and updates the JFrame's title