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 DEL_SECOND
           
static short DEL_THIRD
           
static short END_CODE
           
static short HOME_CODE
           
static short O_PREFIX
           
 
Fields inherited from interface jline.ConsoleOperations
ADD, BACKSPACE, CHANGE_CASE, CHANGE_META, CLEAR_LINE, CLEAR_SCREEN, COMPLETE, CR, CTRL_A, CTRL_B, CTRL_C, CTRL_D, CTRL_E, CTRL_F, CTRL_K, CTRL_L, CTRL_N, CTRL_OB, CTRL_P, CTRL_QM, DELETE, DELETE_META, DELETE_NEXT_CHAR, DELETE_PREV_CHAR, DELETE_PREV_WORD, END_OF_HISTORY, 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, START_OF_HISTORY, SUBSTITUTE_CHAR, SUBSTITUTE_LINE, TO_END_WORD, TO_NEXT_CHAR, TO_PREV_CHAR, UNDO, UNKNOWN
 
Constructor Summary
UnixTerminal()
           
 
Method Summary
protected  void checkBackspace()
           
 void disableEcho()
          Disable character echoing.
 void enableEcho()
          Enable character echoing.
 boolean getEcho()
          Returns true if the terminal will echo all characters type.
static String getSttyCommand()
          The command to use to set the terminal options.
 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 isEchoEnabled()
          Returns false if character echoing is disabled.
 boolean isSupported()
          Returns true if this terminal is capable of initializing the terminal to use jline.
 int readVirtualKey(InputStream in)
          Reads a virtual key from the console.
 void restoreTerminal()
          Restore the original terminal configuration, which can be used when shutting down the console reader.
static void setSttyCommand(String cmd)
          The command to use to set the terminal options.
 
Methods inherited from class jline.Terminal
afterReadLine, beforeReadLine, getDefaultBindings, getTerminal, isANSISupported, readCharacter, resetTerminal, 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

O_PREFIX

public static final short O_PREFIX
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

DEL_THIRD

public static final short DEL_THIRD
See Also:
Constant Field Values

DEL_SECOND

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

UnixTerminal

public UnixTerminal()
Method Detail

checkBackspace

protected void checkBackspace()

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

restoreTerminal

public void restoreTerminal()
                     throws Exception
Restore the original terminal configuration, which can be used when shutting down the console reader. The ConsoleReader cannot be used after calling this method.

Throws:
Exception

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

setSttyCommand

public static void setSttyCommand(String cmd)
The command to use to set the terminal options. Defaults to "stty", or the value of the system property "jline.sttyCommand".


getSttyCommand

public static String getSttyCommand()
The command to use to set the terminal options. Defaults to "stty", or the value of the system property "jline.sttyCommand".


isEchoEnabled

public boolean isEchoEnabled()
Description copied from class: Terminal
Returns false if character echoing is disabled.

Specified by:
isEchoEnabled in class Terminal

enableEcho

public void enableEcho()
Description copied from class: Terminal
Enable character echoing. This can be used to re-enable character if the ConsoleReader is no longer being used.

Specified by:
enableEcho in class Terminal

disableEcho

public void disableEcho()
Description copied from class: Terminal
Disable character echoing. This can be used to manually re-enable character if the ConsoleReader has been disabled.

Specified by:
disableEcho in class Terminal


Copyright 2002-2008. All Rights Reserved.