edu.princeton.toy
Class TSimStdoutPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by edu.princeton.toy.TSimStdoutPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

public class TSimStdoutPane
extends JPanel
implements Scrollable

TSimStdoutPane is a Scrollable component which displays the stdin stream of a virtualMachine in sim mode.

See Also:
Serialized Form

Nested Class Summary
protected  class TSimStdoutPane.Listener
          The Listener of a TBaseConverterPane pays attention to the changes in the PTextFields, and fires off changes to the other PTextFields.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
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
static int MAX_SCALE
          The maxmimum scale which the TSimStdoutPane can be scaled to.
static int MIN_SCALE
          The minimum scale which the TSimStdoutPane can be scaled to.
static int PREFERRED_SCALE
          The scale used in determining the preferred size of the TSimStdoutPane.
static String RESCALE_COMMAND
          The command to update the contents of the inputList with the stdin stream of the virtualMachine.
static String UPDATE_COMMAND
          The command to update the contents of the inputList with the stdin stream of the virtualMachine.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
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
 
Constructor Summary
TSimStdoutPane(TVirtualMachine virtualMachine)
          Creates a new TSimStdoutPane.
 
Method Summary
 boolean doCommand(String command, Object extraInfo)
          Performs a command based on the argument.
 Dimension getPreferredScrollableViewportSize()
          Implement scrollable to make the viewport's preferred size that of the page size at the PREFERRED_SCALE.
 int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
          Implement scrollable to make the block increment a full page.
 boolean getScrollableTracksViewportHeight()
          Implement scrollable to make the InternalTextArea's height always equal to that of it's viewport's.
 boolean getScrollableTracksViewportWidth()
          Implement scrollable to make the InternalTextArea's size the greater of its own size and its viewport's size.
 int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
          Implement scrollable to make the unit increment a tenth of a page.
 TVirtualMachine getVirtualMachine()
          Returns the virtualMachine attached to this TSimStdoutPane.
 void paintComponent(Graphics g)
          Override paintComponent() to make this TSimStdoutPane actually paint the memory information.
protected  void processComponentEvent(ComponentEvent e)
          Intercept ComponentEvents to do resize and move the memPanel when this component is resized.
protected  void processHierarchyBoundsEvent(HierarchyEvent e)
          Intercept HierarchyEvents to do resize and move the detailPanel when this component is resized.
protected  void processMouseEvent(MouseEvent e)
          Process MouseEvents to mark the beginning of a mouse dragging session.
protected  void processMouseMotionEvent(MouseEvent e)
          Process MouseEvents to scroll the pane when the mouse is dragged.
 void scrollToFrontier()
          Ensures that the cell representing the word at the frontier of the stdout list is visible.
 void setVirtualMachine(TVirtualMachine virtualMachine)
          Sets the virtualMachine attached to this TSimStdoutPane.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processFocusEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

RESCALE_COMMAND

public static final String RESCALE_COMMAND
The command to update the contents of the inputList with the stdin stream of the virtualMachine.


UPDATE_COMMAND

public static final String UPDATE_COMMAND
The command to update the contents of the inputList with the stdin stream of the virtualMachine.


MIN_SCALE

public static final int MIN_SCALE
The minimum scale which the TSimStdoutPane can be scaled to.

See Also:
Constant Field Values

MAX_SCALE

public static final int MAX_SCALE
The maxmimum scale which the TSimStdoutPane can be scaled to.

See Also:
Constant Field Values

PREFERRED_SCALE

public static final int PREFERRED_SCALE
The scale used in determining the preferred size of the TSimStdoutPane.

See Also:
Constant Field Values
Constructor Detail

TSimStdoutPane

public TSimStdoutPane(TVirtualMachine virtualMachine)
Creates a new TSimStdoutPane.

Method Detail

setVirtualMachine

public void setVirtualMachine(TVirtualMachine virtualMachine)
Sets the virtualMachine attached to this TSimStdoutPane.

Parameters:
virtualMachine - The virtualMachine to be attached to this TSimStdoutPane.

getVirtualMachine

public TVirtualMachine getVirtualMachine()
Returns the virtualMachine attached to this TSimStdoutPane.

Returns:
The virtualMachine attached to this TSimStdoutPane.

doCommand

public boolean doCommand(String command,
                         Object extraInfo)
Performs a command based on the argument.

Parameters:
command - A string representing the command. Note that pointer equality (not string equality) is tested here, so it is important to use the string constants defined in this class. An IllegalArgumentException will be thrown if the argument is invalid.
Returns:
True iff the command was executed sucessfully.

paintComponent

public void paintComponent(Graphics g)
Override paintComponent() to make this TSimStdoutPane actually paint the memory information.

Overrides:
paintComponent in class JComponent

processHierarchyBoundsEvent

protected void processHierarchyBoundsEvent(HierarchyEvent e)
Intercept HierarchyEvents to do resize and move the detailPanel when this component is resized.

Overrides:
processHierarchyBoundsEvent in class Component

processComponentEvent

protected void processComponentEvent(ComponentEvent e)
Intercept ComponentEvents to do resize and move the memPanel when this component is resized.

Overrides:
processComponentEvent in class Component

processMouseEvent

protected void processMouseEvent(MouseEvent e)
Process MouseEvents to mark the beginning of a mouse dragging session.

Overrides:
processMouseEvent in class JComponent

processMouseMotionEvent

protected void processMouseMotionEvent(MouseEvent e)
Process MouseEvents to scroll the pane when the mouse is dragged.

Overrides:
processMouseMotionEvent in class JComponent

scrollToFrontier

public void scrollToFrontier()
Ensures that the cell representing the word at the frontier of the stdout list is visible.


getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
Implement scrollable to make the viewport's preferred size that of the page size at the PREFERRED_SCALE.

Specified by:
getPreferredScrollableViewportSize in interface Scrollable

getScrollableUnitIncrement

public int getScrollableUnitIncrement(Rectangle visibleRect,
                                      int orientation,
                                      int direction)
Implement scrollable to make the unit increment a tenth of a page.

Specified by:
getScrollableUnitIncrement in interface Scrollable

getScrollableBlockIncrement

public int getScrollableBlockIncrement(Rectangle visibleRect,
                                       int orientation,
                                       int direction)
Implement scrollable to make the block increment a full page.

Specified by:
getScrollableBlockIncrement in interface Scrollable

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
Implement scrollable to make the InternalTextArea's size the greater of its own size and its viewport's size.

Specified by:
getScrollableTracksViewportWidth in interface Scrollable

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight()
Implement scrollable to make the InternalTextArea's height always equal to that of it's viewport's.

Specified by:
getScrollableTracksViewportHeight in interface Scrollable