Package me.tongfei.progressbar
Class TerminalUtils
- java.lang.Object
-
- me.tongfei.progressbar.TerminalUtils
-
public class TerminalUtils extends java.lang.Object- Since:
- 0.9.0
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static java.util.Queue<ProgressBarConsumer>activeConsumers(package private) static charCARRIAGE_RETURNprivate static booleancursorMovementSupported(package private) static intDEFAULT_TERMINAL_WIDTH(package private) static charESCAPE_CHARprivate static org.jline.terminal.Terminalterminal
-
Constructor Summary
Constructors Constructor Description TerminalUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static voidcloseTerminal()(package private) static <T extends ProgressBarConsumer>
java.util.stream.Stream<T>filterActiveConsumers(java.lang.Class<T> clazz)(package private) static org.jline.terminal.TerminalgetTerminal()Creating terminal is relatively expensive, usually takes between 5-10ms.(package private) static intgetTerminalWidth()(package private) static booleanhasCursorMovementSupport()(package private) static java.lang.StringmoveCursorDown(int count)(package private) static java.lang.StringmoveCursorUp(int count)
-
-
-
Field Detail
-
CARRIAGE_RETURN
static final char CARRIAGE_RETURN
- See Also:
- Constant Field Values
-
ESCAPE_CHAR
static final char ESCAPE_CHAR
- See Also:
- Constant Field Values
-
DEFAULT_TERMINAL_WIDTH
static final int DEFAULT_TERMINAL_WIDTH
- See Also:
- Constant Field Values
-
terminal
private static org.jline.terminal.Terminal terminal
-
cursorMovementSupported
private static boolean cursorMovementSupported
-
activeConsumers
static java.util.Queue<ProgressBarConsumer> activeConsumers
-
-
Method Detail
-
getTerminalWidth
static int getTerminalWidth()
-
hasCursorMovementSupport
static boolean hasCursorMovementSupport()
-
closeTerminal
static void closeTerminal()
-
filterActiveConsumers
static <T extends ProgressBarConsumer> java.util.stream.Stream<T> filterActiveConsumers(java.lang.Class<T> clazz)
-
moveCursorUp
static java.lang.String moveCursorUp(int count)
-
moveCursorDown
static java.lang.String moveCursorDown(int count)
-
getTerminal
static org.jline.terminal.Terminal getTerminal()
- Creating terminal is relatively expensive, usually takes between 5-10ms.
- If updateInterval is set under 10ms creating new terminal for on every re-render of progress bar could be a problem.
- Especially when multiple progress bars are running in parallel.
- Another problem with
Terminalis that once created you can create another instance (say from different thread), but this instance will be "dumb". Until previously created terminal will be closed.
- Creating terminal is relatively expensive, usually takes between 5-10ms.
-
-