Class ArchSimGUI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--edu.kzoo.grid.gui.GridAppFrame
                                      |
                                      +--ArchSimGUI
All Implemented Interfaces:
javax.accessibility.Accessible, edu.kzoo.grid.display.GridDisplay, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class ArchSimGUI
extends edu.kzoo.grid.gui.GridAppFrame

Archaeological Dig:
An ArchSimGUI object represents a window with control buttons and a display for an archaeological dig simulation. Most of the functionality is provided in the GridAppFrame superclass.

Version:
18 May 2004
Author:
Alyce Brady
See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.kzoo.grid.gui.GridAppFrame
DEFAULT_INITIAL_DELAY, DEFAULT_MAX_DELAY_MSECS, DEFAULT_MIN_DELAY_MSECS
 
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
ArchSimGUI(java.lang.String title, javax.swing.JMenu helpMenu, java.awt.Color usualBgColor, java.awt.Color successBgColor, java.awt.Color failureBgColor, int numRows, ArchSimulation sim)
          Constructs a new ArchSimGUI object.
 
Method Summary
protected  edu.kzoo.grid.display.ScrollableGridDisplay constructDisplay(int viewingWidth, int viewingHeight, int minCellSize, java.awt.Color bgColor)
          Constructs the grid display at the heart of the graphical user interface.
 void notifyArtifactDamaged()
          Notifies the user that at least one artifact was damaged.
 void notifyDigSuccessfullyCompleted()
          Notifies the user that he or she completed the simulation successfully.
protected  void onMousePressOverDisplay(edu.kzoo.grid.Location loc)
          Handles a mouse press over the grid display.
 void restart()
          Starts or restarts the application.
 void setGrid(edu.kzoo.grid.Grid grid)
           
 
Methods inherited from class edu.kzoo.grid.gui.GridAppFrame
addGridChangeListener, constructWindowContents, defineContent, getDelay, getDisplay, getGrid, getMouseListenerForDisplay, getResetButton, getSpeedSlider, includeMenu, includeSpeedSlider, includeSpeedSlider, includeSpeedSlider, includeStartRestart, makeControlPanel, makeControlPanelInterior, makeDisplayPanel, makeSliderPanel, notifyGridChangeListeners, setDelay, showGrid
 
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, setJMenuBar, 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, setIconImage, 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, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, 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, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, 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, 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, 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, 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, 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, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, 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
 

Constructor Detail

ArchSimGUI

public ArchSimGUI(java.lang.String title,
                  javax.swing.JMenu helpMenu,
                  java.awt.Color usualBgColor,
                  java.awt.Color successBgColor,
                  java.awt.Color failureBgColor,
                  int numRows,
                  ArchSimulation sim)
Constructs a new ArchSimGUI object.

Parameters:
title - window title
helpMenu - Help menu
usualBgColor - grid background color during simulation
successBgColor - bg color if simulated dig succeeds
failureBgColor - bg color if simulated dig fails
numRows - number of rows (and columns) in the grid
sim - object that controls the simulation
Method Detail

constructDisplay

protected edu.kzoo.grid.display.ScrollableGridDisplay constructDisplay(int viewingWidth,
                                                                       int viewingHeight,
                                                                       int minCellSize,
                                                                       java.awt.Color bgColor)
Constructs the grid display at the heart of the graphical user interface. Should be redefined in subclasses that wish to use a subclass of ScrollableGridDisplay (for example, to modify the way tool tips are displayed, or some other aspect of the scrollable display).

Overrides:
constructDisplay in class edu.kzoo.grid.gui.GridAppFrame
Parameters:
viewingWidth - the width of the viewing area
viewingHeight - the height of the viewing area
minCellSize - minimum grid cell side length
bgColor - color to paint background of grid
Returns:
a scrollable grid display

setGrid

public void setGrid(edu.kzoo.grid.Grid grid)
Specified by:
setGrid in interface edu.kzoo.grid.display.GridDisplay
Overrides:
setGrid in class edu.kzoo.grid.gui.GridAppFrame

restart

public void restart()
Starts or restarts the application.

Overrides:
restart in class edu.kzoo.grid.gui.GridAppFrame

onMousePressOverDisplay

protected void onMousePressOverDisplay(edu.kzoo.grid.Location loc)
Handles a mouse press over the grid display.

Overrides:
onMousePressOverDisplay in class edu.kzoo.grid.gui.GridAppFrame

notifyDigSuccessfullyCompleted

public void notifyDigSuccessfullyCompleted()
Notifies the user that he or she completed the simulation successfully. Alters the background color of the grid and prints a message to the console.


notifyArtifactDamaged

public void notifyArtifactDamaged()
Notifies the user that at least one artifact was damaged. Alters the background color of the grid and prints a message to the console.