Package mars.tools
Class AbstractMarsToolAndApplication
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
mars.tools.AbstractMarsToolAndApplication
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Observer
,Accessible
,RootPaneContainer
,WindowConstants
,MarsTool
- Direct Known Subclasses:
BHTSimulator
,BitmapDisplay
,CacheSimulator
,DigitalLabSim
,FloatRepresentation
,InstructionCounter
,InstructionStatistics
,IntroToTools
,KeyboardAndDisplaySimulator
,MemoryReferenceVisualization
,MipsXray
An abstract class that provides generic components to facilitate implementation of
a MarsTool and/or stand-alone Mars-based application. Provides default definitions
of both the action() method required to implement MarsTool and the go() method
conventionally used to launch a Mars-based stand-alone application. It also provides
generic definitions for interactively controlling the application. The generic controls
for MarsTools are 3 buttons: connect/disconnect to MIPS resource (memory and/or
registers), reset, and close (exit). The generic controls for stand-alone Mars apps
include: button that triggers a file open dialog, a text field to display status
messages, the run-speed slider to control execution rate when running a MIPS program,
a button that assembles and runs the current MIPS program, a button to interrupt
the running MIPS program, a reset button, and an exit button.
Pete Sanderson, 14 November 2006.
- See Also:
- Serialized Form
-
Nested Class Summary
Nested classes/interfaces inherited from class java.awt.Window
Window.Type
Nested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior
-
Field Summary
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Method Summary
Modifier and TypeMethodDescriptionvoid
action()
Required MarsTool method to carry out Tool functions.abstract String
getName()
Required MarsTool method to return Tool name.void
go()
Run the simulator as stand-alone application.void
update(Observable resource, Object accessNotice)
Called when receiving notice of access to MIPS memory or registers.Methods inherited from class javax.swing.JFrame
getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, 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, 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, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, 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, getParent, 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, 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, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Method Details
-
getName
Required MarsTool method to return Tool name. Must be defined by subclass. -
go
public void go()Run the simulator as stand-alone application. For this default implementation, the user-defined main display of the user interface is identical for both stand-alone and MARS Tools menu use, but the control buttons are different because the stand-alone must include a mechansim for controlling the opening, assembling, and executing of an underlying MIPS program. The generic controls include: a button that triggers a file open dialog, a text field to display status messages, the run-speed slider to control execution rate when running a MIPS program, a button that assembles and runs the current MIPS program, a reset button, and an exit button. This method calls 3 methods that can be defined/overriden in the subclass: initializePreGUI() for any special initialization that must be completed before building the user interface (e.g. data structures whose properties determine default GUI settings), initializePostGUI() for any special initialization that cannot be completed until after the building the user interface (e.g. data structure whose properties are determined by default GUI settings), and buildMainDisplayArea() to contain application-specific displays of parameters and results. -
action
public void action()Required MarsTool method to carry out Tool functions. It is invoked when MARS user selects this tool from the Tools menu. This default implementation provides generic definitions for interactively controlling the tool. The generic controls for MarsTools are 3 buttons: connect/disconnect to MIPS resource (memory and/or registers), reset, and close (exit). Like "go()" above, this default version calls 3 methods that can be defined/overriden in the subclass: initializePreGUI() for any special initialization that must be completed before building the user interface (e.g. data structures whose properties determine default GUI settings), initializePostGUI() for any special initialization that cannot be completed until after the building the user interface (e.g. data structure whose properties are determined by default GUI settings), and buildMainDisplayArea() to contain application-specific displays of parameters and results. -
update
Called when receiving notice of access to MIPS memory or registers. Default implementation of method required by Observer interface. This method will filter out notices originating from the MARS GUI or from direct user editing of memory or register displays. Only notices arising from MIPS program access are allowed in. It then calls two methods to be overridden by the subclass (since they do nothing by default): processMIPSUpdate() then updateDisplay().
-