@Override public void handle( final Terminal.Signal signal, final Terminal.SignalHandler signalHandler ) { terminal.handle(signal, signalHandler); }
@Override public void close() { try { terminal.close(); } catch (final IOException e) { // Swallow } }
private static Terminal buildTerminal() { try { final Terminal terminal = TerminalBuilder.builder().system(true).build(); // Ignore ^C when not reading a line terminal.handle(Terminal.Signal.INT, Terminal.SignalHandler.SIG_IGN); return terminal; } catch (final IOException e) { throw new RuntimeException("JLineTerminal failed to start!", e); } } }
@Override public PrintWriter writer() { return terminal.writer(); }
@Override public void clearScreen() { terminal.puts(InfoCmp.Capability.clear_screen); }
@Override public void flush() { terminal.flush(); }
@Override public int getWidth() { return terminal.getWidth(); }
private void restoreTerminal(Tuple2<Attributes, Map<Signal, SignalHandler>> prev) { final Terminal terminal = client.getTerminal(); terminal.setAttributes(prev.f0); prev.f1.forEach(terminal::handle); }
public CliView(CliClient client) { this.client = client; keyReader = new BindingReader(client.getTerminal().reader()); }
public int getHeight() { if (isPlainTerminal()) { return PLAIN_TERMINAL_HEIGHT; } return terminal.getHeight(); }
public int getWidth() { if (isPlainTerminal()) { return PLAIN_TERMINAL_WIDTH; } return terminal.getWidth(); }