ptolemy.gui
Class ShellTextArea

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--ptolemy.gui.ShellTextArea
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class ShellTextArea
extends javax.swing.JPanel

A text area supporting shell-style interactions.

Version:
$Id: ShellTextArea.html,v 1.1 2004/02/17 15:36:59 mnwaltz Exp $
Author:
John Reekie, Christopher Hylands, Edward A. Lee
See Also:
Serialized Form

Field Summary
 java.lang.String contPrompt
          Prompt to use on continuation lines.
 int historyLength
          Size of the history to keep.
 java.lang.String mainPrompt
          Main prompt.
 
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
ShellTextArea()
          Create a new instance with no initial message.
ShellTextArea(java.lang.String initialMessage)
          Create a new instance with the specified initial message.
 
Method Summary
 void addNotify()
          Override the base class to output the first prompt.
 void appendJTextArea(java.lang.String text)
          Append the specified text to the JTextArea and update the prompt cursor.
 void clearJTextArea()
          Clear the JTextArea and reset the prompt cursor.
 ShellInterpreter getInterpreter()
          Get the interpreter that has been registered with setInterpreter().
 void initialize(java.lang.String initialMessage)
          Initialize the text area with the given starting message, followed by a prompt.
static void main(java.lang.String[] args)
          Main method used for testing.
 void replaceRangeJTextArea(java.lang.String text, int start, int end)
          Replace a range in the JTextArea.
 void returnResult(java.lang.String result)
          Return the result of a command evaluation.
 void setEditable(boolean editable)
          Set the associated text area editable (with a true argument) or not editable (with a false argument).
 void setInterpreter(ShellInterpreter interpreter)
          Set the interpreter.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

mainPrompt

public java.lang.String mainPrompt
Main prompt.


contPrompt

public java.lang.String contPrompt
Prompt to use on continuation lines.


historyLength

public int historyLength
Size of the history to keep.

Constructor Detail

ShellTextArea

public ShellTextArea()
Create a new instance with no initial message.


ShellTextArea

public ShellTextArea(java.lang.String initialMessage)
Create a new instance with the specified initial message.

Parameters:
initialMessage - The initial message.
Method Detail

addNotify

public void addNotify()
Override the base class to output the first prompt. We need to do this here because we can't write to the TextArea until the peer has been created.

Overrides:
addNotify in class javax.swing.JComponent

appendJTextArea

public void appendJTextArea(java.lang.String text)
Append the specified text to the JTextArea and update the prompt cursor. The text will actually be appended in the swing thread, not immediately. This method immediately returns.

Parameters:
text - The text to append to the text area.

getInterpreter

public ShellInterpreter getInterpreter()
Get the interpreter that has been registered with setInterpreter().

Returns:
The interpreter, or null if none has been set.
See Also:
setInterpreter(ShellInterpreter)

clearJTextArea

public void clearJTextArea()
Clear the JTextArea and reset the prompt cursor. The clearing is done in the swing thread, not immediately. This method immediately returns.


initialize

public void initialize(java.lang.String initialMessage)
Initialize the text area with the given starting message, followed by a prompt. If the argument is null or the empty string, then only a prompt is shown.

Parameters:
initialMessage - The initial message.

main

public static void main(java.lang.String[] args)
Main method used for testing. To run a simple test, use:
        java -classpath $PTII ptolemy.gui.ShellTextArea
  


replaceRangeJTextArea

public void replaceRangeJTextArea(java.lang.String text,
                                  int start,
                                  int end)
Replace a range in the JTextArea.


returnResult

public void returnResult(java.lang.String result)
Return the result of a command evaluation. This method is used when it is impractical to insist on the result being returned by evaluateCommand() of a ShellInterpreter. For example, computing the result may take a while.

Parameters:
result - The result to return.

setEditable

public void setEditable(boolean editable)
Set the associated text area editable (with a true argument) or not editable (with a false argument). This should be called in the swing event thread.

Parameters:
editable - True to make the text area editable, false to make it uneditable.

setInterpreter

public void setInterpreter(ShellInterpreter interpreter)
Set the interpreter.

Parameters:
interpreter - The interpreter.
See Also:
getInterpreter()