Generic Environment GUI Class Library

Class ActiveEnvFrame

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--EnvAppFrame
                                      |
                                      +--EnvFrameWithSlider
                                            |
                                            +--ActiveEnvFrame
All Implemented Interfaces:
javax.accessibility.Accessible, EnvDisplay, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, SettableEnvDisplay, javax.swing.WindowConstants

public class ActiveEnvFrame
extends EnvFrameWithSlider

Environment-Based Applications:
The ActiveEnvFrame class provides a window in which to run and display an environment, holding the display steady for a length of time determined by a slider.

Version:
1 December 2002
See Also:
Serialized Form

Inner classes inherited from class EnvAppFrame
EnvAppFrame.GUIExceptionHandler
 
Inner classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
protected  EnvAppController appController
           
protected  javax.swing.JButton nStepsButton
           
protected  int numStepsSoFar
           
protected  int numStepsToRun
           
protected  javax.swing.JButton restartButton
           
protected  javax.swing.JButton runButton
           
protected  boolean running
           
protected  boolean runningNSteps
           
protected  javax.swing.JButton stepButton
           
protected  javax.swing.JButton stopButton
           
protected  boolean supportNSteps
           
protected  boolean supportRestart
           
protected  boolean supportRun
           
protected  boolean supportStep
           
protected  javax.swing.Timer timer
           
 
Fields inherited from class EnvFrameWithSlider
INITIAL_DELAY, MAX_DELAY_MSECS, MIN_DELAY_MSECS, speedSlider
 
Fields inherited from class EnvAppFrame
content, display, env, envController, menuBar, menuItemsThatNeedAnEnvironment, menuMask
 
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 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
protected ActiveEnvFrame(EnvAppController control, boolean includeStep, boolean includeNSteps, boolean includeRunAndStop, boolean includeRestart)
          Creates an uninitialized ActiveEnvFrame.
  ActiveEnvFrame(java.lang.String title, java.awt.Color bgColor, int viewingWidth, int viewingHeight, int minCellSize, EnvAppController control, boolean includeStep, boolean includeNSteps, boolean includeRunAndStop, boolean includeRestart)
          Creates a new ActiveEnvFrame with no menu bar.
  ActiveEnvFrame(java.lang.String title, java.awt.Color bgColor, int viewingWidth, int viewingHeight, int minCellSize, int maxDelayMsecs, int minDelayMsecs, int initialDelayMsecs, EnvAppController control, boolean includeStep, boolean includeNSteps, boolean includeRunAndStop, boolean includeRestart)
          Creates a new ActiveEnvFrame with no menu bar.
 
Method Summary
protected  void defineContent(java.awt.Color bgColor, int viewingWidth, int viewingHeight, int minCellSize)
          Defines contents of main window panel.
 void enableItemsThatNeedEnvironment()
          Sets the enabled status of those GUI items that need an environment to be valid.
protected  void enterNotRunningMode()
          Enables and disables GUI components as necessary when an application is not running.
protected  void enterRunningMode()
          Enables and disables GUI components as necessary while the application is running.
protected  javax.swing.JPanel makeRunButtons(java.lang.String label)
          Creates a panel with buttons for running the application.
protected  void nSteps()
          Advances the application multiple (N) steps (where N is provided by the user in a dialog box).
protected  void run()
          Starts a timer to repeatedly step the application at the speed currently indicated by the speed slider.
 void setEnv(Environment environment)
          Sets the Environment being displayed.
protected  boolean shouldStop()
          Determines whether a running application has reached a desired stopping state.
 void showEnv()
          Shows the environment.
protected  void step()
          Advances the application one step.
protected  void stop()
          Stops any existing timer currently stepping the application.
 
Methods inherited from class EnvFrameWithSlider
getDelay, init, init, makeDisplayPanel, makeSliderPanel
 
Methods inherited from class EnvAppFrame
getDisplay, init, makeDisplay, makeEnvDisplay, makeFileMenu, makeMenuBar, makeMenus
 
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, setCursor, 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
 

Field Detail

appController

protected EnvAppController appController

timer

protected javax.swing.Timer timer

stepButton

protected javax.swing.JButton stepButton

nStepsButton

protected javax.swing.JButton nStepsButton

runButton

protected javax.swing.JButton runButton

stopButton

protected javax.swing.JButton stopButton

restartButton

protected javax.swing.JButton restartButton

supportStep

protected boolean supportStep

supportNSteps

protected boolean supportNSteps

supportRun

protected boolean supportRun

supportRestart

protected boolean supportRestart

running

protected boolean running

runningNSteps

protected boolean runningNSteps

numStepsToRun

protected int numStepsToRun

numStepsSoFar

protected int numStepsSoFar
Constructor Detail

ActiveEnvFrame

protected ActiveEnvFrame(EnvAppController control,
                         boolean includeStep,
                         boolean includeNSteps,
                         boolean includeRunAndStop,
                         boolean includeRestart)
Creates an uninitialized ActiveEnvFrame. Provided for subclass constructors, which should always use this constructor followed by a call to init.
Parameters:
control - the object that controls the running of the environment application through step and/or run methods.
includeStep - true if GUI should include a One Step button
includeNSteps - true if GUI should include an N Steps button
includeRunAndStop - true if GUI should include Run... and Stop buttons
includeRestart - true if GUI should include a Restart button

ActiveEnvFrame

public ActiveEnvFrame(java.lang.String title,
                      java.awt.Color bgColor,
                      int viewingWidth,
                      int viewingHeight,
                      int minCellSize,
                      EnvAppController control,
                      boolean includeStep,
                      boolean includeNSteps,
                      boolean includeRunAndStop,
                      boolean includeRestart)
Creates a new ActiveEnvFrame with no menu bar. Subclasses should not invoke this constructor; they should call the init method directly from their own constructors. (The init method uses the Template Method design pattern, which does not work correctly in superclass constructors.)
Parameters:
title - frame title
backgroundColor - color to paint background of environment
viewingWidth - the width of the viewing area
viewingHeight - the height of the viewing area
minCellSize - minimum environment cell side length
control - the object that controls the running of the environment application through step and/or run methods.
includeStep - true if GUI should include a One Step button
includeNSteps - true if GUI should include an N Steps button
includeRunAndStop - true if GUI should include Run... and Stop buttons
includeRestart - true if GUI should include a Restart button

ActiveEnvFrame

public ActiveEnvFrame(java.lang.String title,
                      java.awt.Color bgColor,
                      int viewingWidth,
                      int viewingHeight,
                      int minCellSize,
                      int maxDelayMsecs,
                      int minDelayMsecs,
                      int initialDelayMsecs,
                      EnvAppController control,
                      boolean includeStep,
                      boolean includeNSteps,
                      boolean includeRunAndStop,
                      boolean includeRestart)
Creates a new ActiveEnvFrame with no menu bar. The slider will be initialized to range from maxDelayMsecs to minDelayMsecsY_MSECS (maximum delay is slowest; minimum dalay is fastest). Subclasses should not invoke this constructor; they should call the init method directly from their own constructors. (The init method uses the Template Method design pattern, which does not work correctly in superclass constructors.) (Precondition: minDelayMsecs < initialDelayMsecs < maxDelayMsecs)
Parameters:
title - frame title
backgroundColor - color to paint background of environment
viewingWidth - the width of the viewing area
viewingHeight - the height of the viewing area
minCellSize - minimum environment cell side length
maxDelayMsecs - maximum delay value for slider, in milliseconds
minDelayMsecs - minimum delay value for slider, in milliseconds
initialDelayMsecs - initial value for slider, in milliseconds
control - the object that controls the running of the environment application through step and/or run methods.
includeStep - true if GUI should include a One Step button
includeNSteps - true if GUI should include an N Steps button
includeRunAndStop - true if GUI should include Run... and Stop buttons
includeRestart - true if GUI should include a Restart button
Method Detail

defineContent

protected void defineContent(java.awt.Color bgColor,
                             int viewingWidth,
                             int viewingHeight,
                             int minCellSize)
Defines contents of main window panel. Should be redefined in subclasses that require panels other than (or in addition to) a an environment display and a control panel with step/run buttons and a slider.
Overrides:
defineContent in class EnvAppFrame
Parameters:
backgroundColor - color to paint background of environment
viewingWidth - the width of the viewing area
viewingHeight - the height of the viewing area
minCellSize - minimum environment cell side length

makeRunButtons

protected javax.swing.JPanel makeRunButtons(java.lang.String label)
Creates a panel with buttons for running the application. The actual buttons included in the panel depend on the values specified when this active environment window was constructed.
Parameters:
label - description for this set of buttons
Returns:
a panel containing the buttons for running the application

enableItemsThatNeedEnvironment

public void enableItemsThatNeedEnvironment()
Sets the enabled status of those GUI items that need an environment to be valid.
Overrides:
enableItemsThatNeedEnvironment in class EnvAppFrame

enterRunningMode

protected void enterRunningMode()
Enables and disables GUI components as necessary while the application is running.

enterNotRunningMode

protected void enterNotRunningMode()
Enables and disables GUI components as necessary when an application is not running.

setEnv

public void setEnv(Environment environment)
Sets the Environment being displayed. (Precondition: env is not null.)
Overrides:
setEnv in class EnvAppFrame
Parameters:
environment - the Environment to display

showEnv

public void showEnv()
Shows the environment. (Precondition: must have called setEnv.)
Overrides:
showEnv in class EnvFrameWithSlider

step

protected void step()
Advances the application one step.

shouldStop

protected boolean shouldStop()
Determines whether a running application has reached a desired stopping state.
Returns:
true if the application should stop

nSteps

protected void nSteps()
Advances the application multiple (N) steps (where N is provided by the user in a dialog box). It may stop before the N steps have completed if the user clicks on the stop button (if one is provided) or if the application controller indicates that the application has reached a stopping state.

run

protected void run()
Starts a timer to repeatedly step the application at the speed currently indicated by the speed slider. It will stop when the user clicks on the stop button or when the application controller indicates that the application has reached a stopping state.

stop

protected void stop()
Stops any existing timer currently stepping the application.

Generic Environment GUI Class Library

Copyright© 2003 Alyce Brady