Package org.fusesource.jansi
Class WindowsAnsiPrintStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.io.PrintStream
-
- org.fusesource.jansi.FilterPrintStream
-
- org.fusesource.jansi.AnsiPrintStream
-
- org.fusesource.jansi.WindowsAnsiPrintStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.Appendable,java.lang.AutoCloseable
public final class WindowsAnsiPrintStream extends AnsiPrintStream
A Windows ANSI escape processor, that uses JNA to access native platform API's to change the console attributes (see Jansi native Kernel32).The native library used is named
jansiand is loaded using HawtJNI RuntimeLibrary- Since:
- 1.7
- See Also:
WindowsAnsiOutputStream
-
-
Field Summary
Fields Modifier and Type Field Description private static short[]ANSI_BACKGROUND_COLOR_MAPprivate static short[]ANSI_FOREGROUND_COLOR_MAPprivate static shortBACKGROUND_BLACKprivate static shortBACKGROUND_CYANprivate static shortBACKGROUND_MAGENTAprivate static shortBACKGROUND_WHITEprivate static shortBACKGROUND_YELLOWprivate longconsoleprivate static shortFOREGROUND_BLACKprivate static shortFOREGROUND_CYANprivate static shortFOREGROUND_MAGENTAprivate static shortFOREGROUND_WHITEprivate static shortFOREGROUND_YELLOWprivate org.fusesource.jansi.internal.Kernel32.CONSOLE_SCREEN_BUFFER_INFOinfoprivate booleannegativeprivate shortoriginalColorsprivate shortsavedXprivate shortsavedYprivate static longstderr_handleprivate static longstdout_handle-
Fields inherited from class org.fusesource.jansi.AnsiPrintStream
ATTRIBUTE_BLINK_FAST, ATTRIBUTE_BLINK_OFF, ATTRIBUTE_BLINK_SLOW, ATTRIBUTE_CONCEAL_OFF, ATTRIBUTE_CONCEAL_ON, ATTRIBUTE_INTENSITY_BOLD, ATTRIBUTE_INTENSITY_FAINT, ATTRIBUTE_INTENSITY_NORMAL, ATTRIBUTE_ITALIC, ATTRIBUTE_NEGATIVE_Off, ATTRIBUTE_NEGATIVE_OFF, ATTRIBUTE_NEGATIVE_ON, ATTRIBUTE_UNDERLINE, ATTRIBUTE_UNDERLINE_DOUBLE, ATTRIBUTE_UNDERLINE_OFF, BLACK, BLUE, CYAN, ERASE_LINE, ERASE_LINE_TO_BEGINING, ERASE_LINE_TO_END, ERASE_SCREEN, ERASE_SCREEN_TO_BEGINING, ERASE_SCREEN_TO_END, GREEN, MAGENTA, RED, RESET_CODE, state, WHITE, YELLOW
-
Fields inherited from class org.fusesource.jansi.FilterPrintStream
ps
-
-
Constructor Summary
Constructors Constructor Description WindowsAnsiPrintStream(java.io.PrintStream ps)WindowsAnsiPrintStream(java.io.PrintStream ps, boolean stdout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidapplyAttribute()private voidapplyCursorPosition()private voidgetConsoleInfo()private shortinvertAttributeColors(short attributes)protected voidprocessAttributeRest()processSGR 0corresponding toReset / Normalprotected voidprocessChangeWindowTitle(java.lang.String label)processOSC 2;text BELcorresponding toChange Window titleprotected voidprocessCursorDown(int count)processCSI n Bcorresponding toCUD – Cursor Downprotected voidprocessCursorLeft(int count)processCSI n Dcorresponding toCUB – Cursor Backprotected voidprocessCursorRight(int count)processCSI n Ccorresponding toCUF – Cursor Forwardprotected voidprocessCursorTo(int row, int col)processCSI n ; m Hcorresponding toCUP – Cursor PositionorCSI n ; m fcorresponding toHVP – Horizontal and Vertical Positionprotected voidprocessCursorToColumn(int x)processCSI n Gcorresponding toCHA – Cursor Horizontal Absoluteprotected voidprocessCursorUp(int count)processCSI n Acorresponding toCUU – Cursor Upprotected voidprocessDefaultBackgroundColor()processSGR 49corresponding toDefault background colorprotected voidprocessDefaultTextColor()processSGR 39corresponding toDefault text color (foreground)protected voidprocessDeleteLine(int optionInt)ProcessCSI MANSI code, corresponding toDL – Delete Lineprotected voidprocessEraseLine(int eraseOption)ProcessCSI n KANSI code, corresponding toED – Erase in Lineprotected voidprocessEraseScreen(int eraseOption)ProcessCSI n JANSI code, corresponding toED – Erase in Displayprotected voidprocessInsertLine(int optionInt)ProcessCSI LANSI code, corresponding toIL – Insert Lineprotected voidprocessRestoreCursorPosition()ProcessCSI uANSI code, corresponding toRCP – Restore Cursor Positionprotected voidprocessSaveCursorPosition()ProcessCSI sANSI code, corresponding toSCP – Save Cursor Positionprotected voidprocessSetAttribute(int attribute)processSGRother than0(reset),30-39(foreground),40-49(background),90-97(foreground high intensity) or100-107(background high intensity)protected voidprocessSetBackgroundColor(int color, boolean bright)processSGR 40-47orSGR 100-107corresponding toSet background coloreither in normal mode or high intensity.protected voidprocessSetForegroundColor(int color, boolean bright)processSGR 30-37orSGR 90-97corresponding toSet text color (foreground)either in normal mode or high intensity.-
Methods inherited from class org.fusesource.jansi.AnsiPrintStream
close, filter, processChangeIconName, processChangeIconNameAndWindowTitle, processCharsetSelect, processCursorDownLine, processCursorUpLine, processScrollDown, processScrollUp, processSetBackgroundColor, processSetBackgroundColorExt, processSetBackgroundColorExt, processSetForegroundColor, processSetForegroundColorExt, processSetForegroundColorExt, processUnknownExtension, processUnknownOperatingSystemCommand
-
Methods inherited from class org.fusesource.jansi.FilterPrintStream
checkError, flush, print, print, print, print, print, print, print, print, print, println, println, println, println, println, println, println, println, println, println, write, write
-
-
-
-
Field Detail
-
stdout_handle
private static final long stdout_handle
-
stderr_handle
private static final long stderr_handle
-
console
private final long console
-
FOREGROUND_BLACK
private static final short FOREGROUND_BLACK
- See Also:
- Constant Field Values
-
FOREGROUND_YELLOW
private static final short FOREGROUND_YELLOW
-
FOREGROUND_MAGENTA
private static final short FOREGROUND_MAGENTA
-
FOREGROUND_CYAN
private static final short FOREGROUND_CYAN
-
FOREGROUND_WHITE
private static final short FOREGROUND_WHITE
-
BACKGROUND_BLACK
private static final short BACKGROUND_BLACK
- See Also:
- Constant Field Values
-
BACKGROUND_YELLOW
private static final short BACKGROUND_YELLOW
-
BACKGROUND_MAGENTA
private static final short BACKGROUND_MAGENTA
-
BACKGROUND_CYAN
private static final short BACKGROUND_CYAN
-
BACKGROUND_WHITE
private static final short BACKGROUND_WHITE
-
ANSI_FOREGROUND_COLOR_MAP
private static final short[] ANSI_FOREGROUND_COLOR_MAP
-
ANSI_BACKGROUND_COLOR_MAP
private static final short[] ANSI_BACKGROUND_COLOR_MAP
-
info
private final org.fusesource.jansi.internal.Kernel32.CONSOLE_SCREEN_BUFFER_INFO info
-
originalColors
private final short originalColors
-
negative
private boolean negative
-
savedX
private short savedX
-
savedY
private short savedY
-
-
Constructor Detail
-
WindowsAnsiPrintStream
public WindowsAnsiPrintStream(java.io.PrintStream ps, boolean stdout) throws java.io.IOException- Throws:
java.io.IOException
-
WindowsAnsiPrintStream
public WindowsAnsiPrintStream(java.io.PrintStream ps) throws java.io.IOException- Throws:
java.io.IOException
-
-
Method Detail
-
getConsoleInfo
private void getConsoleInfo() throws java.io.IOException- Throws:
java.io.IOException
-
applyAttribute
private void applyAttribute() throws java.io.IOException- Throws:
java.io.IOException
-
invertAttributeColors
private short invertAttributeColors(short attributes)
-
applyCursorPosition
private void applyCursorPosition() throws java.io.IOException- Throws:
java.io.IOException
-
processEraseScreen
protected void processEraseScreen(int eraseOption) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamProcessCSI n JANSI code, corresponding toED – Erase in Display- Overrides:
processEraseScreenin classAnsiPrintStream- Parameters:
eraseOption- eraseOption- Throws:
java.io.IOException- IOException
-
processEraseLine
protected void processEraseLine(int eraseOption) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamProcessCSI n KANSI code, corresponding toED – Erase in Line- Overrides:
processEraseLinein classAnsiPrintStream- Parameters:
eraseOption- eraseOption- Throws:
java.io.IOException- IOException
-
processCursorLeft
protected void processCursorLeft(int count) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessCSI n Dcorresponding toCUB – Cursor Back- Overrides:
processCursorLeftin classAnsiPrintStream- Parameters:
count- count- Throws:
java.io.IOException- IOException
-
processCursorRight
protected void processCursorRight(int count) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessCSI n Ccorresponding toCUF – Cursor Forward- Overrides:
processCursorRightin classAnsiPrintStream- Parameters:
count- count- Throws:
java.io.IOException- IOException
-
processCursorDown
protected void processCursorDown(int count) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessCSI n Bcorresponding toCUD – Cursor Down- Overrides:
processCursorDownin classAnsiPrintStream- Parameters:
count- count- Throws:
java.io.IOException- IOException
-
processCursorUp
protected void processCursorUp(int count) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessCSI n Acorresponding toCUU – Cursor Up- Overrides:
processCursorUpin classAnsiPrintStream- Parameters:
count- count- Throws:
java.io.IOException- IOException
-
processCursorTo
protected void processCursorTo(int row, int col) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessCSI n ; m Hcorresponding toCUP – Cursor PositionorCSI n ; m fcorresponding toHVP – Horizontal and Vertical Position- Overrides:
processCursorToin classAnsiPrintStream- Parameters:
row- rowcol- col- Throws:
java.io.IOException- IOException
-
processCursorToColumn
protected void processCursorToColumn(int x) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessCSI n Gcorresponding toCHA – Cursor Horizontal Absolute- Overrides:
processCursorToColumnin classAnsiPrintStream- Parameters:
x- the column- Throws:
java.io.IOException- IOException
-
processSetForegroundColor
protected void processSetForegroundColor(int color, boolean bright) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessSGR 30-37orSGR 90-97corresponding toSet text color (foreground)either in normal mode or high intensity.- Overrides:
processSetForegroundColorin classAnsiPrintStream- Parameters:
color- the text colorbright- is high intensity?- Throws:
java.io.IOException- IOException
-
processSetBackgroundColor
protected void processSetBackgroundColor(int color, boolean bright) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessSGR 40-47orSGR 100-107corresponding toSet background coloreither in normal mode or high intensity.- Overrides:
processSetBackgroundColorin classAnsiPrintStream- Parameters:
color- the background colorbright- is high intensity?- Throws:
java.io.IOException- IOException
-
processDefaultTextColor
protected void processDefaultTextColor() throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessSGR 39corresponding toDefault text color (foreground)- Overrides:
processDefaultTextColorin classAnsiPrintStream- Throws:
java.io.IOException- IOException
-
processDefaultBackgroundColor
protected void processDefaultBackgroundColor() throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessSGR 49corresponding toDefault background color- Overrides:
processDefaultBackgroundColorin classAnsiPrintStream- Throws:
java.io.IOException- IOException
-
processAttributeRest
protected void processAttributeRest() throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessSGR 0corresponding toReset / Normal- Overrides:
processAttributeRestin classAnsiPrintStream- Throws:
java.io.IOException- IOException
-
processSetAttribute
protected void processSetAttribute(int attribute) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamprocessSGRother than0(reset),30-39(foreground),40-49(background),90-97(foreground high intensity) or100-107(background high intensity)- Overrides:
processSetAttributein classAnsiPrintStream- Parameters:
attribute- attribute- Throws:
java.io.IOException- IOException- See Also:
AnsiPrintStream.processAttributeRest(),AnsiPrintStream.processSetForegroundColor(int),AnsiPrintStream.processSetForegroundColor(int, boolean),AnsiPrintStream.processSetForegroundColorExt(int),AnsiPrintStream.processSetForegroundColorExt(int, int, int),AnsiPrintStream.processDefaultTextColor(),AnsiPrintStream.processDefaultBackgroundColor()
-
processSaveCursorPosition
protected void processSaveCursorPosition() throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamProcessCSI sANSI code, corresponding toSCP – Save Cursor Position- Overrides:
processSaveCursorPositionin classAnsiPrintStream- Throws:
java.io.IOException- IOException
-
processRestoreCursorPosition
protected void processRestoreCursorPosition() throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamProcessCSI uANSI code, corresponding toRCP – Restore Cursor Position- Overrides:
processRestoreCursorPositionin classAnsiPrintStream- Throws:
java.io.IOException- IOException
-
processInsertLine
protected void processInsertLine(int optionInt) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamProcessCSI LANSI code, corresponding toIL – Insert Line- Overrides:
processInsertLinein classAnsiPrintStream- Parameters:
optionInt- option- Throws:
java.io.IOException- IOException
-
processDeleteLine
protected void processDeleteLine(int optionInt) throws java.io.IOExceptionDescription copied from class:AnsiPrintStreamProcessCSI MANSI code, corresponding toDL – Delete Line- Overrides:
processDeleteLinein classAnsiPrintStream- Parameters:
optionInt- option- Throws:
java.io.IOException- IOException
-
processChangeWindowTitle
protected void processChangeWindowTitle(java.lang.String label)
Description copied from class:AnsiPrintStreamprocessOSC 2;text BELcorresponding toChange Window title- Overrides:
processChangeWindowTitlein classAnsiPrintStream- Parameters:
label- window title text
-
-