Package jay.yydebug
Class yyJInputStream
- java.lang.Object
-
- java.io.InputStream
-
- jay.yydebug.yyJInputStream
-
- All Implemented Interfaces:
java.awt.event.KeyListener,java.io.Closeable,java.lang.AutoCloseable,java.util.EventListener
public class yyJInputStream extends java.io.InputStream implements java.awt.event.KeyListenerused to reroute standard input from aJTextArea. 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.
-
-
Constructor Summary
Constructors Constructor Description yyJInputStream()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()voidclose()protected voiddoKey(javax.swing.JTextArea ta, char ch, boolean paste)process one typed or pasted character.voidkeyPressed(java.awt.event.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.voidkeyReleased(java.awt.event.KeyEvent ke)voidkeyTyped(java.awt.event.KeyEvent ke)intread()intread(byte[] b, int off, int len)longskip(long len)returns 0: cannot skip on a terminal.
-
-
-
Field Detail
-
line
protected final java.lang.StringBuffer line
line edit buffer.
-
queue
protected java.util.ArrayList queue
completed lines, ready to be read. Invariant: null afterclose().
-
-
Method Detail
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.InputStream- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
skip
public long skip(long len)
returns 0: cannot skip on a terminal.- Overrides:
skipin classjava.io.InputStream
-
keyPressed
public void keyPressed(java.awt.event.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.
- Specified by:
keyPressedin interfacejava.awt.event.KeyListener
-
keyTyped
public void keyTyped(java.awt.event.KeyEvent ke)
- Specified by:
keyTypedin interfacejava.awt.event.KeyListener
-
doKey
protected void doKey(javax.swing.JTextArea ta, char ch, boolean paste)process one typed or pasted character. The caret position is not updated for pasting.
-
keyReleased
public void keyReleased(java.awt.event.KeyEvent ke)
- Specified by:
keyReleasedin interfacejava.awt.event.KeyListener
-
-