view
Class MBSView

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

public class MBSView
extends javax.swing.JFrame

The main frame class of the GUI.

Author:
Mathias Ricken
See Also:
Serialized Form

Nested Class Summary
 class MBSView.GUIExceptionHandler
          Nested class that is registered as the handler for exceptions on the Swing event thread.
private static class MBSView.StepItLambda
          Iteration command for a set number of steps.
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  LRStruct _componentsDisabledDuringRun
          List of menu items that are disabled if the simulation is running.
private  LRStruct _componentsThatNeedAnEnvironment
          List of menu items that are only enabled if an environment is present.
private  CreateEnvDialog _createEnvDialog
          Create environment dialog.
(package private)  IDisplayAdapter _displayAdapter
          Display adapter.
 DisplayPanel _displayPanel
          Display panel.
private  DisplayViewport _displayViewport
          Display viewport.
private  EditToolbar _editToolbar
          Edit toolbar.
(package private)  IEnvAdapter _envAdapter
          Environment adapter to the model.
private  EnvFileChooser _fileChooser
          Environment file chooser dialog.
private  ILambda _indefinitelyIterLambda
          Iteration command to run indefinitely.
private  int _randSeed
          Seed value.
(package private)  IScrollAdapter _scrollAdapter
          Scroll adapter.
private  javax.swing.JScrollPane _scrollPane
          Scroll panel.
(package private)  ISimAdapter _simAdapter
          Simulation adapter.
private  SimToolbar _simToolbar
          Simulation toolbar.
private  int _stepCount
          Step count.
private static java.lang.String VERSION_DATE
          Program date.
 
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
MBSView(IDisplayAdapter da, ISimAdapter sa, IEnvAdapter ea)
          Create a new MBSGUIFrame and all its controls.
 
Method Summary
 java.awt.Color getCurrentColor()
          Return current color.
 java.lang.String getCurrentFish()
          Return name of current fish class.
 void handleException(java.lang.Throwable t)
          Handle an exception that occurred during the simulation.
private  void makeMenus()
          Create the drop-down menus on the frame.
protected  void processWindowEvent(java.awt.event.WindowEvent e)
          Processes window events occurring on this component.
private static java.lang.Integer queryForInteger(java.lang.String message, java.lang.String prompt, int suggestion, javax.swing.JFrame parentFrame)
          Query for an integer.
static void setComponentsEnabled(LRStruct list, boolean enable)
          Set the enabled status of those menu items that need an environment to be valid.
 void setEditModeEnable(boolean enable)
          Enable or disable the edit mode.
private  void showAboutPanel()
          Brings up a simple dialog with some general information.
private  void showHelp()
          Brings up a window with a scrolling text pane that display the help information for the simulation.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, 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, 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, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, 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, 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, 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, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, 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
 

Field Detail

VERSION_DATE

private static final java.lang.String VERSION_DATE
Program date.

See Also:
Constant Field Values

_componentsThatNeedAnEnvironment

private LRStruct _componentsThatNeedAnEnvironment
List of menu items that are only enabled if an environment is present.


_componentsDisabledDuringRun

private LRStruct _componentsDisabledDuringRun
List of menu items that are disabled if the simulation is running.


_editToolbar

private EditToolbar _editToolbar
Edit toolbar.


_simToolbar

private SimToolbar _simToolbar
Simulation toolbar.


_displayPanel

public DisplayPanel _displayPanel
Display panel.


_displayViewport

private DisplayViewport _displayViewport
Display viewport.


_scrollPane

private javax.swing.JScrollPane _scrollPane
Scroll panel.


_fileChooser

private EnvFileChooser _fileChooser
Environment file chooser dialog.


_createEnvDialog

private CreateEnvDialog _createEnvDialog
Create environment dialog.


_randSeed

private int _randSeed
Seed value.


_stepCount

private int _stepCount
Step count.


_indefinitelyIterLambda

private ILambda _indefinitelyIterLambda
Iteration command to run indefinitely.


_displayAdapter

IDisplayAdapter _displayAdapter
Display adapter.


_simAdapter

ISimAdapter _simAdapter
Simulation adapter.


_envAdapter

IEnvAdapter _envAdapter
Environment adapter to the model.


_scrollAdapter

IScrollAdapter _scrollAdapter
Scroll adapter.

Constructor Detail

MBSView

public MBSView(IDisplayAdapter da,
               ISimAdapter sa,
               IEnvAdapter ea)
Create a new MBSGUIFrame and all its controls.

Parameters:
da - display adapter
sa - simulation adapter
ea - environment adapter
Method Detail

processWindowEvent

protected void processWindowEvent(java.awt.event.WindowEvent e)
Processes window events occurring on this component. Hides the window or disposes of it, as specified by the setting of the defaultCloseOperation property.

Overrides:
processWindowEvent in class javax.swing.JFrame
Parameters:
e - the window event
See Also:
JFrame.setDefaultCloseOperation(int), Window.processWindowEvent(java.awt.event.WindowEvent)

makeMenus

private void makeMenus()
Create the drop-down menus on the frame.


setComponentsEnabled

public static void setComponentsEnabled(LRStruct list,
                                        boolean enable)
Set the enabled status of those menu items that need an environment to be valid.

Parameters:
list - list of components
enable - true if components should be enabled

setEditModeEnable

public void setEditModeEnable(boolean enable)
Enable or disable the edit mode.

Parameters:
enable - true if edit mode should be enabled

showAboutPanel

private void showAboutPanel()
Brings up a simple dialog with some general information.


showHelp

private void showHelp()
Brings up a window with a scrolling text pane that display the help information for the simulation.


handleException

public void handleException(java.lang.Throwable t)
Handle an exception that occurred during the simulation.

Parameters:
t - exception caught during simulation

queryForInteger

private static java.lang.Integer queryForInteger(java.lang.String message,
                                                 java.lang.String prompt,
                                                 int suggestion,
                                                 javax.swing.JFrame parentFrame)
Query for an integer.

Parameters:
message - message to display
prompt - prompt to display
suggestion - suggested value
parentFrame - parent frame
Returns:
Integer object or null if error

getCurrentFish

public java.lang.String getCurrentFish()
Return name of current fish class.

Returns:
name of current fish class

getCurrentColor

public java.awt.Color getCurrentColor()
Return current color.

Returns:
current color