jay.yydebug
Class yyJInputStream
public
class
yyJInputStream
extends InputStream
implements KeyListener
used to reroute standard input from a javax.swing.JTextArea.
Feeds all read methods from listening to typed keys.
Should not deadlock because one should generally not
read from within the event thread.
While this implementation avoids Java generics, code for a generic
version has simply been commented out.
| Field Summary |
| protected StringBuffer | line line edit buffer. |
| protected ArrayList | queue completed lines, ready to be read.
|
| Method Summary |
| int | available() |
| void | close() |
| protected void | doKey(JTextArea ta, char ch, boolean paste) process one typed or pasted character.
|
| void | keyPressed(KeyEvent ke) this one ensures that you can only type at the end
and implements control-C as copy and control-V as paste key if
AWTPermission(accessClipboard) is granted.
|
| void | keyReleased(KeyEvent ke) |
| void | keyTyped(KeyEvent ke) |
| int | read() |
| int | read(byte[] b, int off, int len) |
| long | skip(long len) returns 0: cannot skip on a terminal. |
protected final StringBuffer line
line edit buffer.
protected ArrayList queue
completed lines, ready to be read.
Invariant: null after
yyJInputStream.
public int available()
public void close()
protected void doKey(JTextArea ta, char ch, boolean paste)
process one typed or pasted character.
The caret position is not updated for pasting.
public void keyPressed(KeyEvent ke)
this one ensures that you can only type at the end
and implements control-C as copy and control-V as paste key if
AWTPermission(accessClipboard) is granted.
This is executed within the event thread.
BUG: paste should be based on the platform paste key;
however, Safari does not send that one to an applet.
public void keyReleased(KeyEvent ke)
public void keyTyped(KeyEvent ke)
public int read()
public int read(byte[] b, int off, int len)
public long skip(long len)
returns 0: cannot skip on a terminal.