cdx.scorebot.util.swing
Class FileMenuXMLBasedFrame<T>

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
                          extended by cdx.scorebot.util.swing.FileMenuXMLBasedFrame<T>
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:
CompetitionConfigurerGUI, ConfigurerGUI, FileMenuNTPTemplate, ReporterGUI, TeamConfigurerGUI, WrapperGUI

public abstract class FileMenuXMLBasedFrame<T>
extends FileMenuFrame
implements FileOpener

This GUI allows the user to use the new-open-save-save as functionality with an object of type T. This provides a basic default implementation for FileMenuFrame which serailizes and deserializes from XML using the XStream library.

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  T object
          the object currently being worked on (null when no config is loaded)
 
Fields inherited from class cdx.scorebot.util.swing.FileMenuFrame
baseTitle, dialogTxt, dialogTxtShort, extFilter, mnuExit, mnuFile, mnuNew, mnuOpen, mnuSave, mnuSaveAs, mnuSep, recentlyUsedFiles, saved, saveExtension, settings, SETTINGS_FN
 
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
FileMenuXMLBasedFrame(java.lang.String settingsFN)
          Creates new frame which uses the specified file for settings testing
FileMenuXMLBasedFrame(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.
FileMenuXMLBasedFrame(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.
FileMenuXMLBasedFrame(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
 void exit()
          close the GUI (also exits the application if exitTerminatesTheApp is true)
 java.lang.Class getMyClass()
          gets what is being used to cast the input object from XML
 boolean isSaved()
          Checks to see if the file is saved or not based on whether or not the object's serialized form matches what is in the file or not.
abstract  T makeNew()
          create a new object of type T
 void newFile()
          Creates a new T object.
 boolean openFile(java.lang.String fn)
          Open a T with the specified filename.
 void openMostRecent()
          opens the last used file, or calls newFile if there is no most recently used file
 boolean openMostRecentOnStartup()
          gets whether or not to load the last used file when this object's constructor is called
 void postNewFile()
          A method which is executed following the newFile method.
 void postOpenFile(boolean success)
          A method which is executed following the openFile method.
 void postSaveFile(boolean success)
          A method which is executed following the saveFile method.
 void preNewFile()
          A method which is executed following the newFile method.
 void preOpenFile()
          A method which is executed prior to the openFile method.
 void preSaveFile()
          A method which is executed prior to the saveFile method.
 boolean saveFile(java.lang.String fn)
          Saves the current object with the specified filename.
 void setMyClass(java.lang.Class myClass)
          sets what is being used to cast the input object from XML (use Object.class, the default, if it doesn't matter)
 void setOpenMostRecentOnStartup(boolean b)
          sets whether or not to load the last used file when this object's constructor is called
 
Methods inherited from class cdx.scorebot.util.swing.FileMenuFrame
checkSaveStatus, dontCheckedSavedStatus, getFilename, newFileProcessor, openFile, openFileFromFN, saveFile, saveFileAs, setDontCheckedSavedStatus, setFilename, setSaved, setTeminateOnExit, setTitle, teminateOnExit
 
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 cdx.scorebot.util.swing.FileOpener
openFileFromFN
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

object

protected T object
the object currently being worked on (null when no config is loaded)

Constructor Detail

FileMenuXMLBasedFrame

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

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

FileMenuXMLBasedFrame

public FileMenuXMLBasedFrame(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

FileMenuXMLBasedFrame

public FileMenuXMLBasedFrame(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

FileMenuXMLBasedFrame

public FileMenuXMLBasedFrame(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

newFile

public void newFile()
Creates a new T object.

Specified by:
newFile in class FileMenuFrame

makeNew

public abstract T makeNew()
create a new object of type T


preNewFile

public void preNewFile()
A method which is executed following the newFile method. This method is called immediately before the newFile method returns. The default implementation of this method does nothing.


postNewFile

public void postNewFile()
A method which is executed following the newFile method. This method is called immediately before the newFile method returns. The default implementation of this method does nothing.


openFile

public boolean openFile(java.lang.String fn)
Open a T with the specified filename.

Specified by:
openFile in class FileMenuFrame
Parameters:
fn - the name and path of the file to open
Returns:
true if the filename was successfully opened

preOpenFile

public void preOpenFile()
A method which is executed prior to the openFile method.


postOpenFile

public void postOpenFile(boolean success)
A method which is executed following the openFile method. success will be true if the file was opened successfully and false otherwise. This method is called immediately before the openFile method returns. The default implementation of this method does nothing.


saveFile

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

Specified by:
saveFile in class FileMenuFrame
Parameters:
fn - the name and path of the file to save
Returns:
true if the filename was successfully saved

preSaveFile

public void preSaveFile()
A method which is executed prior to the saveFile method.


postSaveFile

public void postSaveFile(boolean success)
A method which is executed following the saveFile method. success will be true if the file was saved successfully and false otherwise. This method is called immediately before the saveFile method returns. The default implementation of this method does nothing.


exit

public void exit()
close the GUI (also exits the application if exitTerminatesTheApp is true)

Overrides:
exit in class FileMenuFrame

getMyClass

public java.lang.Class getMyClass()
gets what is being used to cast the input object from XML


setMyClass

public void setMyClass(java.lang.Class myClass)
sets what is being used to cast the input object from XML (use Object.class, the default, if it doesn't matter)


openMostRecentOnStartup

public boolean openMostRecentOnStartup()
gets whether or not to load the last used file when this object's constructor is called


setOpenMostRecentOnStartup

public void setOpenMostRecentOnStartup(boolean b)
sets whether or not to load the last used file when this object's constructor is called


openMostRecent

public void openMostRecent()
opens the last used file, or calls newFile if there is no most recently used file


isSaved

public boolean isSaved()
Checks to see if the file is saved or not based on whether or not the object's serialized form matches what is in the file or not.

Overrides:
isSaved in class FileMenuFrame