aim4.gui

## Class Viewer

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - java.awt.Window
      - - java.awt.Frame
        - - javax.swing.JFrame
          - - aim4.gui.Viewer

- All Implemented Interfaces:
    ViewerDebugView, ActionListener, ItemListener, KeyListener, MouseListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants

      public class Viewer
      extends JFrame
      implements ActionListener, KeyListener, MouseListener, ItemListener, ViewerDebugView

  The viewer is a Graphical User Interface (GUI) that allows a user to run the AIM Simulator while watching the vehicles in real time.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Viewer.SimThread` The simulation thread that holds the simulation process.

    - ### Nested classes/interfaces inherited from class javax.swing.JFrame

      `JFrame.AccessibleJFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Frame

      `Frame.AccessibleAWTFrame`

    - ### Nested classes/interfaces inherited from class java.awt.Window

      `Window.AccessibleAWTWindow, Window.Type`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static double` | `DEFAULT_SIM_SPEED` The number of simulation seconds per GUI second.
    `static double` | `DEFAULT_TARGET_FRAME_RATE` The number of screen updates per GUI second.
    `static boolean` | `IS_SHOW_IM_DEBUG_SHAPES_BY_DEFAULT` Whether or not the IM Shapes are shown by default.
    `static boolean` | `IS_SHOW_SIMULATION_TIME` Whether or not the current simulation time is shown on screen.
    `static boolean` | `IS_SHOW_VIN_BY_DEFAULT` Whether or not the simulator shows the vin of the vehicles on screen.
    `static double` | `TURBO_SIM_SPEED` The simulation speed (simulation seconds per GUI second) at or beyond which the turbo mode is on (i.e., the simulation will run as fast as possible)

    - ### 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

    Constructors
    Constructor and Description
    `Viewer(BasicSimSetup initSimSetup)` Create a new viewer object.
    `Viewer(BasicSimSetup initSimSetup, boolean isRunNow)` Create a new viewer object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `actionPerformed(ActionEvent e)`
    `Simulator` | `getSimulator()` Get the simulator object.
    `void` | `highlightVehicle(int vin)` Highlight a vehicle immediately.
    `void` | `itemStateChanged(ItemEvent e)`
    `void` | `keyPressed(KeyEvent e)`
    `void` | `keyReleased(KeyEvent e)`
    `void` | `keyTyped(KeyEvent e)`
    `void` | `mouseClicked(MouseEvent e)`
    `void` | `mouseEntered(MouseEvent e)`
    `void` | `mouseExited(MouseEvent e)`
    `void` | `mousePressed(MouseEvent e)`
    `void` | `mouseReleased(MouseEvent e)`
    `void` | `setTargetFrameRate(double targetFrameRate)` Set the target frame rate.
    `void` | `setTargetSimSpeed(double simSpeed)` Set the target simulation speed.

    - ### 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, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

    - ### Methods inherited from class java.awt.Window

      `addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, 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, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, 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, 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, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, 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

    - #### IS_SHOW_SIMULATION_TIME

          public static final boolean IS_SHOW_SIMULATION_TIME

      Whether or not the current simulation time is shown on screen.
      See Also:
        Constant Field Values

    - #### IS_SHOW_VIN_BY_DEFAULT

          public static final boolean IS_SHOW_VIN_BY_DEFAULT

      Whether or not the simulator shows the vin of the vehicles on screen.
      See Also:
        Constant Field Values

    - #### IS_SHOW_IM_DEBUG_SHAPES_BY_DEFAULT

          public static final boolean IS_SHOW_IM_DEBUG_SHAPES_BY_DEFAULT

      Whether or not the IM Shapes are shown by default.
      See Also:
        Constant Field Values

    - #### DEFAULT_SIM_SPEED

          public static final double DEFAULT_SIM_SPEED

      The number of simulation seconds per GUI second. If it is larger than or equal to `TURBO_SIM_SPEED`, the simulation will run as fast as possible.
      See Also:
        Constant Field Values

    - #### DEFAULT_TARGET_FRAME_RATE

          public static final double DEFAULT_TARGET_FRAME_RATE

      The number of screen updates per GUI second. If it is larger than or equal to SimConfig.CYCLES_PER_SECOND, the screen will be updated at every time step of the simulation.
      See Also:
        Constant Field Values

    - #### TURBO_SIM_SPEED

          public static final double TURBO_SIM_SPEED

      The simulation speed (simulation seconds per GUI second) at or beyond which the turbo mode is on (i.e., the simulation will run as fast as possible)
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Viewer

          public Viewer(BasicSimSetup initSimSetup)

      Create a new viewer object.
      Parameters:
        `initSimSetup` - the initial simulation setup

    - #### Viewer

          public Viewer(BasicSimSetup initSimSetup,
                boolean isRunNow)

      Create a new viewer object.
      Parameters:
        `initSimSetup` - the initial simulation setup
        `isRunNow` - whether or not the simulation is run immediately

  - ### Method Detail

    - #### getSimulator

          public Simulator getSimulator()

      Get the simulator object.
      Returns:
        the simulator object; null if the simulator object has not been created.

    - #### setTargetSimSpeed

          public void setTargetSimSpeed(double simSpeed)

      Set the target simulation speed.
      Parameters:
        `simSpeed` - set the target simulation speed

    - #### setTargetFrameRate

          public void setTargetFrameRate(double targetFrameRate)

      Set the target frame rate.
      Parameters:
        `targetFrameRate` - the target frame rate

    - #### actionPerformed

          public void actionPerformed(ActionEvent e)

      Specified by:
        `actionPerformed` in interface `ActionListener`

    - #### keyPressed

          public void keyPressed(KeyEvent e)

      Specified by:
        `keyPressed` in interface `KeyListener`

    - #### keyReleased

          public void keyReleased(KeyEvent e)

      Specified by:
        `keyReleased` in interface `KeyListener`

    - #### keyTyped

          public void keyTyped(KeyEvent e)

      Specified by:
        `keyTyped` in interface `KeyListener`

    - #### mouseClicked

          public void mouseClicked(MouseEvent e)

      Specified by:
        `mouseClicked` in interface `MouseListener`

    - #### mouseEntered

          public void mouseEntered(MouseEvent e)

      Specified by:
        `mouseEntered` in interface `MouseListener`

    - #### mouseExited

          public void mouseExited(MouseEvent e)

      Specified by:
        `mouseExited` in interface `MouseListener`

    - #### mousePressed

          public void mousePressed(MouseEvent e)

      Specified by:
        `mousePressed` in interface `MouseListener`

    - #### mouseReleased

          public void mouseReleased(MouseEvent e)

      Specified by:
        `mouseReleased` in interface `MouseListener`

    - #### itemStateChanged

          public void itemStateChanged(ItemEvent e)

      Specified by:
        `itemStateChanged` in interface `ItemListener`

    - #### highlightVehicle

          public void highlightVehicle(int vin)

      Highlight a vehicle immediately.
      Specified by:
        `highlightVehicle` in interface `ViewerDebugView`
      Parameters:
        `vin` - the VIN number of the vehicle

Copyright © 2013. All rights reserved.