Package ptolemy.gui

Class ShellTextArea

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

    public class ShellTextArea
    extends javax.swing.JPanel
    A text area supporting shell-style interactions.
    Since:
    Ptolemy II 3.0
    Version:
    $Id$
    Author:
    John Reekie, Christopher Hylands, Edward A. Lee
    See Also:
    Serialized Form
    Pt.AcceptedRating:
    Red (cxh)
    Pt.ProposedRating:
    Red (cxh)
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      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

        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

        accessibleContext, 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

      Constructors 
      Constructor Description
      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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, 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.
      • 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
          
        Parameters:
        args - Currently ignored.
      • replaceRangeJTextArea

        public void replaceRangeJTextArea​(java.lang.String text,
                                          int start,
                                          int end)
        Replace a range in the JTextArea.
        Parameters:
        text - The text with which the JTextArea is updated.
        start - The start index.
        end - The end index.
      • 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()