Class FinchFrameAbstract

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 FinchFrameAbstract
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public abstract class FinchFrameAbstract
extends javax.swing.JFrame

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  javax.swing.JPanel actionPanel
          Right-hand-side panel
protected  javax.swing.JButton buttonClear
           
protected  javax.swing.JButton buttonEdit
           
protected  javax.swing.JButton buttonExecute
           
protected  javax.swing.JButton buttonNew
           
protected  boolean closeFlag
          Set to true if the program is to continue running.
(package private)  FinchActionDialogAbstract dialog
          A reference to the associated action edit dialog box
protected  javax.swing.JPanel executePanel
           
protected  javax.swing.JMenu fileMenu
          The file menu
protected  javax.swing.JLabel filterLabel
           
protected  javax.swing.JTextField filterName
           
protected  javax.swing.JPanel filterPanel
           
protected  FinchModelAbstract finchModel
          Reference to the FinchData structure.
protected  javax.swing.JList jList
          Center panel: Action List
protected  javax.swing.JMenuItem jmiExit
           
protected  javax.swing.JMenuItem jmiIntersectBinaryFile
           
protected  javax.swing.JMenuItem jmiLoadBinaryFile
           
protected  javax.swing.JMenuItem jmiLoadTextFile
           
protected  javax.swing.JMenuItem jmiSaveBinaryFile
           
protected  javax.swing.JMenuItem jmiUnionBinaryFile
           
protected  javax.swing.JScrollPane jPane
           
protected  javax.swing.JMenuBar menuBar
          Menu bar
protected  javax.swing.JPanel topPanel
          Top Panel
 
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
FinchFrameAbstract(FinchModelAbstract finchModel, FinchActionDialogAbstract dialog)
          Constructor
 
Method Summary
protected  void closeFinch()
          Initiate the closing down of the program
protected abstract  void delete_list_items()
          Delete any actions that have been selected.
protected abstract  void execute(boolean reverse)
          Execute the filtered action list Algorithm: Extract the filter string (and handle the case when "" is specified) Execute the master action list with the filter string as a parameter
protected  void exitChooser()
           Open a ConfirmDialog box that asks whether the user really wants to quit the program.
 boolean getCloseFlag()
          Indicate whether the program should continue to execute
protected abstract  void loadBinary(LoadType loadType)
          Load a binary file Algorithm: Open a JFileChooser.
protected abstract  void loadText()
          Load a text file Algorithm: Open a JFileChooser.
protected  void openDialogAction(boolean existFlag)
          Open the FinchAction editing dialog box.
protected abstract  void repaintActionList()
          Repaint the display of the filtered action list Algorithm: Extract the filter string (and handle the case when "" is specified) Get the filtered action list (from finchData) Update the list of actions (in JList) Force the JList to repaint()
protected abstract  void saveBinary()
          Save a binary file Algorithm: Open a JFileChooser.
 
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, 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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

finchModel

protected FinchModelAbstract finchModel
Reference to the FinchData structure.


menuBar

protected javax.swing.JMenuBar menuBar
Menu bar


fileMenu

protected javax.swing.JMenu fileMenu
The file menu


jmiLoadTextFile

protected javax.swing.JMenuItem jmiLoadTextFile

jmiIntersectBinaryFile

protected javax.swing.JMenuItem jmiIntersectBinaryFile

jmiLoadBinaryFile

protected javax.swing.JMenuItem jmiLoadBinaryFile

jmiUnionBinaryFile

protected javax.swing.JMenuItem jmiUnionBinaryFile

jmiSaveBinaryFile

protected javax.swing.JMenuItem jmiSaveBinaryFile

jmiExit

protected javax.swing.JMenuItem jmiExit

topPanel

protected javax.swing.JPanel topPanel
Top Panel


filterPanel

protected javax.swing.JPanel filterPanel

executePanel

protected javax.swing.JPanel executePanel

filterLabel

protected javax.swing.JLabel filterLabel

filterName

protected javax.swing.JTextField filterName

buttonClear

protected javax.swing.JButton buttonClear

buttonExecute

protected javax.swing.JButton buttonExecute

actionPanel

protected javax.swing.JPanel actionPanel
Right-hand-side panel


buttonNew

protected javax.swing.JButton buttonNew

buttonEdit

protected javax.swing.JButton buttonEdit

jList

protected javax.swing.JList jList
Center panel: Action List


jPane

protected javax.swing.JScrollPane jPane

closeFlag

protected boolean closeFlag
Set to true if the program is to continue running. False will force the program to quit.


dialog

FinchActionDialogAbstract dialog
A reference to the associated action edit dialog box

Constructor Detail

FinchFrameAbstract

public FinchFrameAbstract(FinchModelAbstract finchModel,
                          FinchActionDialogAbstract dialog)
Constructor

Parameters:
finchModel - Reference to the existing FinchModel object
dialog - Reference to the associated action new/edit dialog box
Method Detail

openDialogAction

protected void openDialogAction(boolean existFlag)
Open the FinchAction editing dialog box.

Algorithm:

Parameters:
existFlag - true if we are editing an existing action ('Edit' has been pressed).

delete_list_items

protected abstract void delete_list_items()
Delete any actions that have been selected.

Algorithm:


execute

protected abstract void execute(boolean reverse)
Execute the filtered action list

Algorithm:

Parameters:
reverse - True if the actions should be executed in reverse order

repaintActionList

protected abstract void repaintActionList()
Repaint the display of the filtered action list

Algorithm:


closeFinch

protected void closeFinch()
Initiate the closing down of the program


loadText

protected abstract void loadText()
Load a text file

Algorithm:


loadBinary

protected abstract void loadBinary(LoadType loadType)
Load a binary file

Algorithm:

Parameters:
loadType - LOAD_FILE = replace the master list with the one loaded from the file, UNION_FILE = combine the master list with the one loaded (removing duplicates), INTERSECT_FILE = combine the master list with the one loaded (keeping only the same items)

saveBinary

protected abstract void saveBinary()
Save a binary file

Algorithm:


exitChooser

protected void exitChooser()

Open a ConfirmDialog box that asks whether the user really wants to quit the program. If "Yes" is selected, then the program is shut down by calling closeFinch() Postconditions:

  1. this.closeFinch() will have been called if indicated by the user.

Notes:

  1. JOptionPane.showConfirmDialog will return a "0" if "Yes" is selected.
  2. The dialog box should only present two buttons: "Yes" and "No"


getCloseFlag

public boolean getCloseFlag()
Indicate whether the program should continue to execute

Returns:
True if the program should continue running (this method is used by the driver method to continue it's wait for the termination of the program.