bsh.util
Class JConsole

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JScrollPane
                          |
                          +--bsh.util.JConsole
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, ConsoleInterface, java.util.EventListener, GUIConsoleInterface, java.awt.image.ImageObserver, java.awt.event.KeyListener, java.awt.MenuContainer, java.awt.event.MouseListener, java.beans.PropertyChangeListener, java.lang.Runnable, javax.swing.ScrollPaneConstants, java.io.Serializable

public class JConsole
extends javax.swing.JScrollPane
implements GUIConsoleInterface, java.lang.Runnable, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.ActionListener, java.beans.PropertyChangeListener

A JFC/Swing based console for the BeanShell desktop. This is a descendant of the old AWTConsole. Improvements by: Mark Donszelmann including Cut & Paste Improvements by: Daniel Leuck including Color and Image support, key press bug workaround

See Also:
Serialized Form

Nested Class Summary
static class JConsole.BlockingPipedInputStream
          The overridden read method in this class will not throw "Broken pipe" IOExceptions; It will simply wait for new writers and data.
 
Field Summary
private  int cmdStart
           
private static java.lang.String COPY
           
private static java.lang.String CUT
           
private  javax.swing.text.DefaultStyledDocument doc
           
private  boolean gotUp
           
private  int histLine
           
private  java.util.Vector history
           
private  java.io.InputStream in
           
private  java.io.InputStream inPipe
           
private  javax.swing.JPopupMenu menu
           
(package private)  NameCompletion nameCompletion
           
private  java.io.PrintStream out
           
private  java.io.OutputStream outPipe
           
private static java.lang.String PASTE
           
(package private)  int SHOW_AMBIG_MAX
           
private  java.lang.String startedLine
           
private  javax.swing.JTextPane text
           
 
Fields inherited from class javax.swing.JScrollPane
columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport
 
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.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JConsole()
           
JConsole(java.io.InputStream cin, java.io.OutputStream cout)
           
 
Method Summary
private  void acceptLine(java.lang.String line)
           
 void actionPerformed(java.awt.event.ActionEvent event)
           
private  void append(java.lang.String string)
           
(package private)  void doCommandCompletion(java.lang.String part)
           
private  void enter()
           
 void error(java.lang.String s)
           
private  void forceCaretMoveToEnd()
           
private  void forceCaretMoveToStart()
           
private  java.lang.String getCmd()
           
 java.io.PrintStream getErr()
           
 java.io.Reader getIn()
           
 java.io.InputStream getInputStream()
           
 java.io.PrintStream getOut()
           
 javax.swing.text.AttributeSet getStyle()
           
private  void historyDown()
           
private  void historyUp()
           
private  void inPipeWatcher()
           
 void keyPressed(java.awt.event.KeyEvent e)
           
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
           
 void mouseClicked(java.awt.event.MouseEvent event)
           
 void mouseEntered(java.awt.event.MouseEvent event)
           
 void mouseExited(java.awt.event.MouseEvent event)
           
 void mousePressed(java.awt.event.MouseEvent event)
           
 void mouseReleased(java.awt.event.MouseEvent event)
           
 void print(javax.swing.Icon icon)
           
 void print(java.lang.Object object)
          Prints the primitive type "float" (needed because of float->double coercion weirdness) public void println(float f) { println(String.valueOf(f)); }
 void print(java.lang.Object s, java.awt.Color color)
           
 void print(java.lang.Object s, java.awt.Font font)
          Prints the primitive type "float" (needed because of float->double coercion weirdness) public void print(float f) { print(String.valueOf(f)); }
 void print(java.lang.Object s, java.awt.Font font, java.awt.Color color)
           
 void print(java.lang.Object s, java.lang.String fontFamilyName, int size, java.awt.Color color)
           
 void print(java.lang.Object s, java.lang.String fontFamilyName, int size, java.awt.Color color, boolean bold, boolean italic, boolean underline)
           
 void print(java.lang.String string)
           
 void print(java.lang.String s, java.awt.Color color)
           
 void println()
          Prints "\\n" (i.e.
 void println(javax.swing.Icon icon)
           
 void println(java.lang.Object object)
           
 void println(java.lang.String string)
           
 void propertyChange(java.beans.PropertyChangeEvent event)
           
(package private)  java.lang.String replaceRange(java.lang.Object s, int start, int end)
           
private  void resetCommandStart()
           
 void run()
           
 void setFont(java.awt.Font font)
           
 void setNameCompletion(NameCompletion nc)
           
 void setStyle(javax.swing.text.AttributeSet attributes)
           
 void setStyle(javax.swing.text.AttributeSet attributes, boolean overWrite)
           
 javax.swing.text.AttributeSet setStyle(java.awt.Color color)
           
 javax.swing.text.AttributeSet setStyle(java.awt.Font font)
           
 javax.swing.text.AttributeSet setStyle(java.awt.Font font, java.awt.Color color)
           
 javax.swing.text.AttributeSet setStyle(java.lang.String fontFamilyName, int size, java.awt.Color color)
           
 javax.swing.text.AttributeSet setStyle(java.lang.String fontFamilyName, int size, java.awt.Color color, boolean bold, boolean italic, boolean underline)
           
 void setWaitFeedback(boolean on)
          e.g.
private  void showHistoryLine()
           
private  int textLength()
           
 java.lang.String toString()
           
private  void type(java.awt.event.KeyEvent e)
           
 
Methods inherited from class javax.swing.JScrollPane
createHorizontalScrollBar, createVerticalScrollBar, createViewport, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeader, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeader, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setViewportView, setWheelScrollingEnabled, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, 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, 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, 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, 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, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CUT

private static final java.lang.String CUT
See Also:
Constant Field Values

COPY

private static final java.lang.String COPY
See Also:
Constant Field Values

PASTE

private static final java.lang.String PASTE
See Also:
Constant Field Values

outPipe

private java.io.OutputStream outPipe

inPipe

private java.io.InputStream inPipe

in

private java.io.InputStream in

out

private java.io.PrintStream out

cmdStart

private int cmdStart

history

private java.util.Vector history

startedLine

private java.lang.String startedLine

histLine

private int histLine

menu

private javax.swing.JPopupMenu menu

text

private javax.swing.JTextPane text

doc

private javax.swing.text.DefaultStyledDocument doc

nameCompletion

NameCompletion nameCompletion

SHOW_AMBIG_MAX

final int SHOW_AMBIG_MAX
See Also:
Constant Field Values

gotUp

private boolean gotUp
Constructor Detail

JConsole

public JConsole()

JConsole

public JConsole(java.io.InputStream cin,
                java.io.OutputStream cout)
Method Detail

getInputStream

public java.io.InputStream getInputStream()

getIn

public java.io.Reader getIn()
Specified by:
getIn in interface ConsoleInterface

getOut

public java.io.PrintStream getOut()
Specified by:
getOut in interface ConsoleInterface

getErr

public java.io.PrintStream getErr()
Specified by:
getErr in interface ConsoleInterface

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
Specified by:
keyPressed in interface java.awt.event.KeyListener

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Specified by:
keyTyped in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Specified by:
keyReleased in interface java.awt.event.KeyListener

type

private void type(java.awt.event.KeyEvent e)

doCommandCompletion

void doCommandCompletion(java.lang.String part)

resetCommandStart

private void resetCommandStart()

append

private void append(java.lang.String string)

replaceRange

java.lang.String replaceRange(java.lang.Object s,
                              int start,
                              int end)

forceCaretMoveToEnd

private void forceCaretMoveToEnd()

forceCaretMoveToStart

private void forceCaretMoveToStart()

enter

private void enter()

getCmd

private java.lang.String getCmd()

historyUp

private void historyUp()

historyDown

private void historyDown()

showHistoryLine

private void showHistoryLine()

acceptLine

private void acceptLine(java.lang.String line)

println

public void println(java.lang.String string)
Specified by:
println in interface ConsoleInterface

print

public void print(java.lang.String string)
Specified by:
print in interface ConsoleInterface

println

public void println()
Prints "\\n" (i.e. newline)


error

public void error(java.lang.String s)
Specified by:
error in interface ConsoleInterface

println

public void println(java.lang.Object object)

println

public void println(javax.swing.Icon icon)

print

public void print(java.lang.Object object)
Prints the primitive type "float" (needed because of float->double coercion weirdness) public void println(float f) { println(String.valueOf(f)); }


print

public void print(javax.swing.Icon icon)

print

public void print(java.lang.Object s,
                  java.awt.Font font)
Prints the primitive type "float" (needed because of float->double coercion weirdness) public void print(float f) { print(String.valueOf(f)); }


print

public void print(java.lang.Object s,
                  java.awt.Color color)

print

public void print(java.lang.String s,
                  java.awt.Color color)
Specified by:
print in interface GUIConsoleInterface

print

public void print(java.lang.Object s,
                  java.awt.Font font,
                  java.awt.Color color)

print

public void print(java.lang.Object s,
                  java.lang.String fontFamilyName,
                  int size,
                  java.awt.Color color)

print

public void print(java.lang.Object s,
                  java.lang.String fontFamilyName,
                  int size,
                  java.awt.Color color,
                  boolean bold,
                  boolean italic,
                  boolean underline)

setStyle

public javax.swing.text.AttributeSet setStyle(java.awt.Font font)

setStyle

public javax.swing.text.AttributeSet setStyle(java.awt.Color color)

setStyle

public javax.swing.text.AttributeSet setStyle(java.awt.Font font,
                                              java.awt.Color color)

setStyle

public javax.swing.text.AttributeSet setStyle(java.lang.String fontFamilyName,
                                              int size,
                                              java.awt.Color color)

setStyle

public javax.swing.text.AttributeSet setStyle(java.lang.String fontFamilyName,
                                              int size,
                                              java.awt.Color color,
                                              boolean bold,
                                              boolean italic,
                                              boolean underline)

setStyle

public void setStyle(javax.swing.text.AttributeSet attributes)

setStyle

public void setStyle(javax.swing.text.AttributeSet attributes,
                     boolean overWrite)

getStyle

public javax.swing.text.AttributeSet getStyle()

setFont

public void setFont(java.awt.Font font)
Overrides:
setFont in class javax.swing.JComponent

inPipeWatcher

private void inPipeWatcher()
                    throws java.io.IOException
java.io.IOException

run

public void run()
Specified by:
run in interface java.lang.Runnable

toString

public java.lang.String toString()
Overrides:
toString in class java.awt.Component

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent event)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent event)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent event)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent event)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent event)
Specified by:
mouseExited in interface java.awt.event.MouseListener

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent event)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

setNameCompletion

public void setNameCompletion(NameCompletion nc)
Specified by:
setNameCompletion in interface GUIConsoleInterface

setWaitFeedback

public void setWaitFeedback(boolean on)
Description copied from interface: GUIConsoleInterface
e.g. the wait cursor

Specified by:
setWaitFeedback in interface GUIConsoleInterface

textLength

private int textLength()