edu.princeton.toy
Class TSimStdin2Pane

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.TSimStdin2Pane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

public class TSimStdin2Pane
extends JPanel
implements Scrollable

TSimStdin2Pane is a variant of TSimStdinPane which displays its data in the form of a set of punchcards.

See Also:
Serialized Form

Nested Class Summary
protected  class TSimStdin2Pane.Listener
          The Listener of a TBaseConverterPane pays attention to the changes in the PTextFields, and fires off changes to the other PTextFields.
protected  class TSimStdin2Pane.Runner
          Runner is a simple implementation of Runnable for the Thread started when the component's size changes.
 
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 TSimStdin2Pane can be scaled to.
static int MIN_SCALE
          The minimum scale which the TSimStdin2Pane can be scaled to.
static int PREFERRED_SCALE
          The scale used in determining the preferred size of the TSimStdin2Pane.
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
TSimStdin2Pane(TVirtualMachine virtualMachine)
          Creates a new TSimStdin2Pane.
 
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 TSimStdin2Pane.
 void paintComponent(Graphics g)
          Override paintComponent() to make this TSimStdin2Pane 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 and to catch the mouse leaving.
protected  void processMouseMotionEvent(MouseEvent e)
          Process MouseEvents to scroll the pane when the mouse is dragged and get the selectedIndex of the component.
 void scrollToFrontier(boolean consumedFrontier)
          Ensures that the cell representing the stdin word at the frontier of either the consumed stdin list or the unconsumed stdin list is visible.
 void setVirtualMachine(TVirtualMachine virtualMachine)
          Sets the virtualMachine attached to this TSimStdin2Pane.
 
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 TSimStdin2Pane can be scaled to.

See Also:
Constant Field Values

MAX_SCALE

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


PREFERRED_SCALE

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

See Also:
Constant Field Values
Constructor Detail

TSimStdin2Pane

public TSimStdin2Pane(TVirtualMachine virtualMachine)
Creates a new TSimStdin2Pane.

Method Detail

setVirtualMachine

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

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

getVirtualMachine

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

Returns:
The virtualMachine attached to this TSimStdin2Pane.

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 TSimStdin2Pane 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 and to catch the mouse leaving.

Overrides:
processMouseEvent in class JComponent

processMouseMotionEvent

protected void processMouseMotionEvent(MouseEvent e)
Process MouseEvents to scroll the pane when the mouse is dragged and get the selectedIndex of the component.

Overrides:
processMouseMotionEvent in class JComponent

scrollToFrontier

public void scrollToFrontier(boolean consumedFrontier)
Ensures that the cell representing the stdin word at the frontier of either the consumed stdin list or the unconsumed stdin 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