bill.util.csv.gui
Class CSVGUI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--bill.util.gui.ParentGUI
                                      |
                                      +--bill.util.csv.gui.CSVGUI
All Implemented Interfaces:
Accessible, ActionListener, EventListener, GUIUtilInterface, ImageObserver, ListSelectionListener, MenuContainer, Printable, RootPaneContainer, Serializable, ToolTipInterface, WindowConstants

public class CSVGUI
extends ParentGUI
implements ActionListener, ListSelectionListener, ToolTipInterface, Printable

Main class for the GUI used to add, delete, view, and modify CSV files.

See Also:
Serialized Form

Inner classes inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Inner classes inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent
 
Fields inherited from class bill.util.gui.ParentGUI
_errorFrame, _helpAbout, _highlighting, _myFrames, _parent, _wasModified, ACTION_HELP_ABOUT, ACTION_HIGHLIGHT, ACTION_METAL, ACTION_MOTIF, ACTION_TOOLTIP, ACTION_WINDOWS, COLOR_NOT_REQUIRED_FIELD, COLOR_REQUIRED_FIELD, VALUE_METAL_LF, VALUE_MOTIF_LF, VALUE_WINDOWS_LF
 
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, 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 java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
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
CSVGUI()
           
CSVGUI(Configuration configuration)
           
 
Method Summary
 void actionPerformed(ActionEvent actionEvent)
          This is the "callback" method for menu actions.
 void addFrameClosing(JFrame frame, boolean cancelled)
          Called when an AddKeyValueFrame is being closed.
 void closeDown()
          Frees up all resources used by this instance of the GUI and saves project metadata.
 void displayToolTips(boolean display)
          Turns tool tips on or off for this frame.
 Hashtable getCSVs()
          Getter for the hash table of individual CSV files we have loaded so far.
 JTableCSV getCSVTable()
          Getter for the JTable we are drawing the CSV information on.
 CSVConfiguration getProjectParser()
          Getter for the parser for the project we are currently using in the GUI.
 String getSelectedFileValue()
          Determines which file list item is currently selected.
 boolean isModified()
          We are overriding the isModified method so we can check through all the CSVParsers we have displayed and see if any of them were changed.
static void main(String[] args)
           
 int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
           
 void refreshFileList()
          Recreates the list widget's contents based on the currently defined file data.
 void setModified(boolean modified)
          Sets the modification indicator as indicated.
 void setProjectParser(CSVConfiguration parser)
          Setter for the parser for the project we are currently using in the GUI.
 void valueChanged(ListSelectionEvent selectionEvent)
          Called whenever a list item is selected or unselected.
 
Methods inherited from class bill.util.gui.ParentGUI
addFrame, addFrameClosing, getDataFileName, getDataFileName, getErrorFrame, getGUIConfig, getHelpAboutFrame, getParentWindow, isHighlighting, isToolTips, propagateHighlighting, propagateToolTipDisplay, removeFrame, setCursor, setErrorFrame, setGUIConfig, setHelpAboutFrame, setHighlighting, setToolTips, updateLookAndFeel, verifyUnsavedChanges
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, removeWindowListener, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFont, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, 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, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
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
 

Constructor Detail

CSVGUI

public CSVGUI()

CSVGUI

public CSVGUI(Configuration configuration)
Method Detail

displayToolTips

public void displayToolTips(boolean display)
Turns tool tips on or off for this frame.
Specified by:
displayToolTips in interface ToolTipInterface
Parameters:
display - Indicates if tool tips should be displayed, true indicates to display them, false indicates to not display them.

getProjectParser

public CSVConfiguration getProjectParser()
Getter for the parser for the project we are currently using in the GUI.
Returns:
Reference to the project parser.

setProjectParser

public void setProjectParser(CSVConfiguration parser)
Setter for the parser for the project we are currently using in the GUI.
Parameters:
parser - Reference to the project parser.

getCSVs

public Hashtable getCSVs()
Getter for the hash table of individual CSV files we have loaded so far.
Returns:
The hash table of loaded CSV files.

getCSVTable

public JTableCSV getCSVTable()
Getter for the JTable we are drawing the CSV information on.
Returns:
The JTable.

setModified

public void setModified(boolean modified)
Sets the modification indicator as indicated. This indicator is used to signal whether the CSV data defined here has been changed since the last save occurred.
Overrides:
setModified in class ParentGUI
Parameters:
modified - The value to set the modification indicator to.

refreshFileList

public void refreshFileList()
Recreates the list widget's contents based on the currently defined file data. Then causes the list to be redrawn in order to display the new information. refreshFileList should be called anytime the file information is changed.

getSelectedFileValue

public String getSelectedFileValue()
Determines which file list item is currently selected.
Returns:
A reference to the seleted item, or null if no item is selected.

closeDown

public void closeDown()
Frees up all resources used by this instance of the GUI and saves project metadata.
Overrides:
closeDown in class ParentGUI

actionPerformed

public void actionPerformed(ActionEvent actionEvent)
This is the "callback" method for menu actions. When the user selects a menu option, this method is invoked to process the menu item.
Specified by:
actionPerformed in interface ActionListener
Parameters:
actionEvent - The event the user performed.

addFrameClosing

public void addFrameClosing(JFrame frame,
                            boolean cancelled)
Called when an AddKeyValueFrame is being closed. For us this means that a new configuration file has been created, or the creation was cancelled out of.
Overrides:
addFrameClosing in class ParentGUI
Parameters:
frame - The AddKeyValueFrame that is being closed.
cancelled - If set to true, indicates the frame was closed by cancelling out of it. This could be via a cancel button or by using the window decorations.

valueChanged

public void valueChanged(ListSelectionEvent selectionEvent)
Called whenever a list item is selected or unselected. We reset the CSV table to show the currently selected file's details.
Specified by:
valueChanged in interface ListSelectionListener
Parameters:
selectionEvent - The list selection event that occurred.

isModified

public boolean isModified()
We are overriding the isModified method so we can check through all the CSVParsers we have displayed and see if any of them were changed. This could also be done by making this class implement TableModelListener, but then his tableChanged method gets called every time the user double clicks in a cell even if nothing is typed in the cell. The TableModelCSV class is smart enough not to update the CSV parser when a cell's value did not change, so although this method is not as efficient as the listener, it is more accurate.
Overrides:
isModified in class ParentGUI
Returns:
Returns true if the project has been modified in any way since it was last saved (or opened if it has never been saved). Otherwise returns false.

print

public int print(Graphics graphics,
                 PageFormat pageFormat,
                 int pageIndex)
          throws PrinterException
Specified by:
print in interface Printable

main

public static void main(String[] args)