## mars.tools
Class BitmapDisplay

    java.lang.Object
      java.awt.Component
          java.awt.Container
              java.awt.Window
                  java.awt.Frame
                      javax.swing.JFrame
                          mars.tools.AbstractMarsToolAndApplication
                              mars.tools.BitmapDisplay

All Implemented Interfaces:
  ImageObserver, MenuContainer, Serializable, Observer, Accessible, RootPaneContainer, WindowConstants, MarsTool

    public class BitmapDisplay

extends AbstractMarsToolAndApplication

Bitmapp display simulator. It can be run either as a stand-alone Java application having access to the mars package, or through MARS as an item in its Tools menu. It makes maximum use of methods inherited from its abstract superclass AbstractMarsToolAndApplication. Pete Sanderson, verison 1.0, 23 December 2010.

See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class mars.tools.AbstractMarsToolAndApplication
`AbstractMarsToolAndApplication.ConnectButton, AbstractMarsToolAndApplication.EnterKeyListener`

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`

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 inherited from class mars.tools.AbstractMarsToolAndApplication
`connectButton, isBeingUsedAsAMarsTool, theWindow, thisMarsApp`

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
`BitmapDisplay()` Simple constructor, likely used by the MARS Tools menu mechanism
`BitmapDisplay(String title, String heading)` Simple constructor, likely used to run a stand-alone bitmap display tool.

Method Summary
`protected void` `addAsObserver()` Override the inherited method, which registers us as an Observer over the static data segment (starting address 0x10010000) only.
`protected JComponent` `buildMainDisplayArea()` Method that constructs the main display area.
`protected JComponent` `getHelpComponent()` Overrides default method, to provide a Help button for this tool/app.
`String` `getName()` Required MarsTool method to return Tool name.
`protected void` `initializePostGUI()` The only post-GUI initialization is to create the initial Grid object based on the default settings of the various combo boxes.
`protected void` `initializePreGUI()` Initialize all JComboBox choice structures not already initialized at declaration.
`static void` `main(String[] args)` Main provided for pure stand-alone use.
`protected void` `processMIPSUpdate(Observable memory, AccessNotice accessNotice)` Update display when connected MIPS program accesses (data) memory.
`protected void` `reset()` Method to reset counters and display when the Reset button selected.
`protected void` `updateDisplay()` Updates display immediately after each update (AccessNotice) is processed, after display configuration changes as needed, and after each execution step when Mars is running in timed mode.

Methods inherited from class mars.tools.AbstractMarsToolAndApplication
`action, addAsObserver, addAsObserver, buildButtonAreaMarsTool, buildButtonAreaStandAlone, buildHeadingArea, deleteAsObserver, deleteAsObserver, go, isObserving, performSpecialClosingDuties, update`

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, 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, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, 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`

Constructor Detail

### BitmapDisplay

    public BitmapDisplay(String title,
                         String heading)

  Simple constructor, likely used to run a stand-alone bitmap display tool.

  Parameters:
    `title` - String containing title for title bar
    `heading` - String containing text for heading shown in upper part of window.

### BitmapDisplay

    public BitmapDisplay()

  Simple constructor, likely used by the MARS Tools menu mechanism

Method Detail

### main

    public static void main(String[] args)

  Main provided for pure stand-alone use. Recommended stand-alone use is to write a driver program that instantiates a Bitmap object then invokes its go() method. "stand-alone" means it is not invoked from the MARS Tools menu. "Pure" means there is no driver program to invoke the application.

### getName

    public String getName()

  Required MarsTool method to return Tool name.

  Specified by:
    `getName` in interface `MarsTool`
  Specified by:
    `getName` in class `AbstractMarsToolAndApplication`
  Returns:
    Tool name. MARS will display this in menu item.

### addAsObserver

    protected void addAsObserver()

  Override the inherited method, which registers us as an Observer over the static data segment (starting address 0x10010000) only. This version will register us as observer over the the memory range as selected by the base address combo box and capacity of the visualization display (number of visualization elements times the number of memory words each one represents). It does so by calling the inherited 2-parameter overload of this method. If you use the inherited GUI buttons, this method is invoked when you click "Connect" button on MarsTool or the "Assemble and Run" button on a Mars-based app.

  Overrides:
    `addAsObserver` in class `AbstractMarsToolAndApplication`

### buildMainDisplayArea

    protected JComponent buildMainDisplayArea()

  Method that constructs the main display area. It is organized vertically into two major components: the display configuration which an be modified using combo boxes, and the visualization display which is updated as the attached MIPS program executes.

  Specified by:
    `buildMainDisplayArea` in class `AbstractMarsToolAndApplication`
  Returns:
    the GUI component containing these two areas

### processMIPSUpdate

    protected void processMIPSUpdate(Observable memory,
                                     AccessNotice accessNotice)

  Update display when connected MIPS program accesses (data) memory.

  Overrides:
    `processMIPSUpdate` in class `AbstractMarsToolAndApplication`
  Parameters:
    `memory` - the attached memory
    `accessNotice` - information provided by memory in MemoryAccessNotice object

### initializePreGUI

    protected void initializePreGUI()

  Initialize all JComboBox choice structures not already initialized at declaration. Overrides inherited method that does nothing.

  Overrides:
    `initializePreGUI` in class `AbstractMarsToolAndApplication`

### initializePostGUI

    protected void initializePostGUI()

  The only post-GUI initialization is to create the initial Grid object based on the default settings of the various combo boxes. Overrides inherited method that does nothing.

  Overrides:
    `initializePostGUI` in class `AbstractMarsToolAndApplication`

### reset

    protected void reset()

  Method to reset counters and display when the Reset button selected. Overrides inherited method that does nothing.

  Overrides:
    `reset` in class `AbstractMarsToolAndApplication`

### updateDisplay

    protected void updateDisplay()

  Updates display immediately after each update (AccessNotice) is processed, after display configuration changes as needed, and after each execution step when Mars is running in timed mode. Overrides inherited method that does nothing.

  Overrides:
    `updateDisplay` in class `AbstractMarsToolAndApplication`

### getHelpComponent

    protected JComponent getHelpComponent()

  Overrides default method, to provide a Help button for this tool/app.

  Overrides:
    `getHelpComponent` in class `AbstractMarsToolAndApplication`