jline
Class UnixTerminal

java.lang.Object
  extended byjline.Terminal
      extended byjline.UnixTerminal
All Implemented Interfaces:
ConsoleOperations

public class UnixTerminal
extends Terminal

Terminal that is used for unix platforms. Terminal initialization is handled by issuing the stty command against the /dev/tty file to disable character echoing and enable character input. All known unix systems (including Linux and Macintosh OS X) support the stty), so this implementation should work for an reasonable POSIX system.

Author:
Marc Prud'hommeaux, Updates Dale Kemp 2005-12-03

Field Summary
static short ARROW_DOWN
           
static short ARROW_LEFT
           
static short ARROW_PREFIX
           
static short ARROW_RIGHT
           
static short ARROW_START
           
static short ARROW_UP
           
static short END_CODE
           
static short HOME_CODE
           
 
Fields inherited from interface jline.ConsoleOperations
ADD, BACKSPACE, CHANGE_CASE, CHANGE_META, CLEAR_SCREEN, COMPLETE, CR, CTRL_A, CTRL_B, CTRL_C, CTRL_D, CTRL_E, CTRL_F, CTRL_N, CTRL_P, DELETE_META, DELETE_NEXT_CHAR, DELETE_PREV_CHAR, DELETE_PREV_WORD, END_WORD, EXIT, INSERT, KEYBOARD_BELL, KILL_LINE, KILL_LINE_PREV, MOVE_TO_BEG, MOVE_TO_END, NEWLINE, NEXT_CHAR, NEXT_HISTORY, NEXT_SPACE_WORD, NEXT_WORD, PASTE, PASTE_NEXT, PASTE_PREV, PREV_CHAR, PREV_HISTORY, PREV_SPACE_WORD, PREV_WORD, REDISPLAY, REPEAT_NEXT_CHAR, REPEAT_PREV_CHAR, REPEAT_SEARCH_NEXT, REPEAT_SEARCH_PREV, REPLACE_CHAR, REPLACE_MODE, RESET_LINE, SEARCH_NEXT, SEARCH_PREV, SUBSTITUTE_CHAR, SUBSTITUTE_LINE, TO_END_WORD, TO_NEXT_CHAR, TO_PREV_CHAR, UNDO, UNKNOWN
 
Constructor Summary
UnixTerminal()
           
 
Method Summary
 boolean getEcho()
          Returns true if the terminal will echo all characters type.
 int getTerminalHeight()
          Returns the value of "stty size" height param.
 int getTerminalWidth()
          Returns the value of "stty size" width param.
 void initializeTerminal()
          Remove line-buffered input by invoking "stty -icanon min 1" against the current terminal.
 boolean isSupported()
          Returns true if this terminal is capable of initializing the terminal to use jline.
static void main(String[] args)
           
 int readVirtualKey(InputStream in)
          Reads a virtual key from the console.
 
Methods inherited from class jline.Terminal
getTerminal, isANSISupported, readCharacter, setupTerminal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ARROW_START

public static final short ARROW_START
See Also:
Constant Field Values

ARROW_PREFIX

public static final short ARROW_PREFIX
See Also:
Constant Field Values

ARROW_LEFT

public static final short ARROW_LEFT
See Also:
Constant Field Values

ARROW_RIGHT

public static final short ARROW_RIGHT
See Also:
Constant Field Values

ARROW_UP

public static final short ARROW_UP
See Also:
Constant Field Values

ARROW_DOWN

public static final short ARROW_DOWN
See Also:
Constant Field Values

HOME_CODE

public static final short HOME_CODE
See Also:
Constant Field Values

END_CODE

public static final short END_CODE
See Also:
Constant Field Values
Constructor Detail

UnixTerminal

public UnixTerminal()
Method Detail

initializeTerminal

public void initializeTerminal()
                        throws IOException,
                               InterruptedException
Remove line-buffered input by invoking "stty -icanon min 1" against the current terminal.

Specified by:
initializeTerminal in class Terminal
Throws:
IOException
InterruptedException

readVirtualKey

public int readVirtualKey(InputStream in)
                   throws IOException
Description copied from class: Terminal
Reads a virtual key from the console. Typically, this will just be the raw character that was entered, but in some cases, multiple input keys will need to be translated into a single virtual key.

Overrides:
readVirtualKey in class Terminal
Parameters:
in - the InputStream to read from
Returns:
the virtual key (e.g., ConsoleOperations#VK_UP)
Throws:
IOException

isSupported

public boolean isSupported()
Description copied from class: Terminal
Returns true if this terminal is capable of initializing the terminal to use jline.

Specified by:
isSupported in class Terminal

getEcho

public boolean getEcho()
Description copied from class: Terminal
Returns true if the terminal will echo all characters type.

Specified by:
getEcho in class Terminal

getTerminalWidth

public int getTerminalWidth()
Returns the value of "stty size" width param. Note: this method caches the value from the first time it is called in order to increase speed, which means that changing to size of the terminal will not be reflected in the console.

Specified by:
getTerminalWidth in class Terminal

getTerminalHeight

public int getTerminalHeight()
Returns the value of "stty size" height param. Note: this method caches the value from the first time it is called in order to increase speed, which means that changing to size of the terminal will not be reflected in the console.

Specified by:
getTerminalHeight in class Terminal

main

public static void main(String[] args)


Released under the terms of the BSD license