Package bsh.util
Class AWTConsole
java.lang.Object
java.awt.Component
java.awt.TextComponent
java.awt.TextArea
bsh.util.AWTConsole
- All Implemented Interfaces:
ConsoleInterface
,KeyListener
,ImageObserver
,MenuContainer
,Serializable
,Runnable
,EventListener
,Accessible
An old AWT based console for BeanShell.
I looked everwhere for one, and couldn't find anything that worked.
I've tried to keep this as small as possible, no frills.
(Well, one frill - a simple history with the up/down arrows)
My hope is that this can be moved to a lightweight (portable) component
with JFC soon... but Swing is still very slow and buggy.
Done: see JConsole.java
The big Hack:
The heinous, disguisting hack in here is to keep the caret (cursor)
at the bottom of the text (without the user having to constantly click
at the bottom). It wouldn't be so bad if the damned setCaretPostition()
worked as expected. But the AWT TextArea for some insane reason treats
NLs as characters... oh, and it refuses to let you set a caret position
greater than the text length - for which it counts NLs as *one* character.
The glorious hack to fix this is to go the TextComponent peer. I really
hate this.
Out of date:
This class is out of date. It does not use the special blocking piped
input stream that the jconsole uses.
Deprecation:
This file uses two deprecate APIs. We want to be a PrintStream so
that we can redirect stdout to our console... I don't see a way around
this. Also we have to use getPeer() for the big hack above.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.awt.TextArea
TextArea.AccessibleAWTTextArea
Nested classes/interfaces inherited from class java.awt.TextComponent
TextComponent.AccessibleAWTTextComponent
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
Fields inherited from class java.awt.TextArea
SCROLLBARS_BOTH, SCROLLBARS_HORIZONTAL_ONLY, SCROLLBARS_NONE, SCROLLBARS_VERTICAL_ONLY
Fields inherited from class java.awt.TextComponent
textListener
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
ConstructorsConstructorDescriptionAWTConsole
(int rows, int cols, InputStream cin, OutputStream cout) AWTConsole
(InputStream in, OutputStream out) -
Method Summary
Methods inherited from class java.awt.TextArea
addNotify, append, appendText, getAccessibleContext, getColumns, getMinimumSize, getMinimumSize, getPreferredSize, getPreferredSize, getRows, getScrollbarVisibility, insert, insertText, minimumSize, minimumSize, paramString, preferredSize, preferredSize, replaceRange, replaceText, setColumns, setRows
Methods inherited from class java.awt.TextComponent
addTextListener, enableInputMethods, getBackground, getCaretPosition, getInputMethodRequests, getListeners, getSelectedText, getSelectionEnd, getSelectionStart, getText, getTextListeners, isEditable, processEvent, processTextEvent, removeNotify, removeTextListener, select, selectAll, setBackground, setEditable, setSelectionEnd, setSelectionStart, setText
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, postEvent, prepareImage, prepareImage, print, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate
-
Constructor Details
-
AWTConsole
-
AWTConsole
public AWTConsole() -
AWTConsole
-
-
Method Details
-
getIn
- Specified by:
getIn
in interfaceConsoleInterface
-
getOut
- Specified by:
getOut
in interfaceConsoleInterface
-
getErr
- Specified by:
getErr
in interfaceConsoleInterface
-
keyPressed
- Specified by:
keyPressed
in interfaceKeyListener
-
type
public void type(int code, char ch, int modifiers) -
setCaretPosition
public void setCaretPosition(int pos) - Overrides:
setCaretPosition
in classTextComponent
-
println
- Specified by:
println
in interfaceConsoleInterface
-
error
- Specified by:
error
in interfaceConsoleInterface
-
print
-
print
- Specified by:
print
in interfaceConsoleInterface
-
run
public void run() -
main
-
toString
-
keyTyped
- Specified by:
keyTyped
in interfaceKeyListener
-
keyReleased
- Specified by:
keyReleased
in interfaceKeyListener
-