public CliView(CliClient client) { this.client = client; keyReader = new BindingReader(client.getTerminal().reader()); }
@Override public NonBlockingReader reader() { return terminal.reader(); }
@Override public NonBlockingReader reader() { return terminal.reader(); }
@Override public NonBlockingReader reader() { return delegate().reader(); }
@Override public NonBlockingReader reader() { return delegate().reader(); }
/** * Close the jLine terminal when needed * * @throws IOException when closing failed */ public static void close() throws IOException { if (terminal != null) { terminal.reader().shutdown(); /*try { terminal.close(); } finally { terminal = null; }*/ } }
public Less(Terminal terminal) { this.terminal = terminal; this.display = new Display(terminal, true); this.bindingReader = new BindingReader(terminal.reader()); }
private int getUserAnswer(String question, int... allowedAnswers) throws IOException { final Set<Integer> allowedAnswerSet = IntStream.of(allowedAnswers).boxed().collect(Collectors.toSet()); final Terminal terminal = sqlLine.getLineReader().getTerminal(); final PrintWriter writer = terminal.writer(); writer.write(question); int c; // The logic to prevent reaction of SqlLineParser here do { c = terminal.reader().read(100); } while (c != -1 && !allowedAnswerSet.contains(c)); return c; }
public Less(Terminal terminal) { this.terminal = terminal; this.display = new Display(terminal, true); this.bindingReader = new BindingReader(terminal.reader()); }
public LineReaderImpl(Terminal terminal, String appName, Map<String, Object> variables) { Objects.requireNonNull(terminal, "terminal can not be null"); this.terminal = terminal; if (appName == null) { appName = "JLine"; } this.appName = appName; if (variables != null) { this.variables = variables; } else { this.variables = new HashMap<>(); } this.keyMaps = defaultKeyMaps(); builtinWidgets = builtinWidgets(); widgets = new HashMap<>(builtinWidgets); bindingReader = new BindingReader(terminal.reader()); }
public Nano(Terminal terminal, Path root) { this.terminal = terminal; this.root = root; this.display = new Display(terminal, true); this.bindingReader = new BindingReader(terminal.reader()); this.size = new Size(); bindKeys(); }
public Nano(Terminal terminal, Path root) { this.terminal = terminal; this.root = root; this.display = new Display(terminal, true); this.bindingReader = new BindingReader(terminal.reader()); this.size = new Size(); bindKeys(); }
@Override public Object execute() throws Exception { if (arguments == null || arguments.length() == 0) { System.err.println("Argument expected"); } else { WatchTask watchTask = new WatchTask(); executorService.scheduleAtFixedRate(watchTask, 0, interval, TimeUnit.SECONDS); try { Terminal terminal = (Terminal) session.get(".jline.terminal"); Terminal.SignalHandler prev = terminal.handle(Terminal.Signal.INT, this::abort); Attributes attr = terminal.enterRawMode(); try { reading = Thread.currentThread(); while (terminal.reader().read(1) == NonBlockingReader.READ_EXPIRED); } finally { reading = null; terminal.setAttributes(attr); terminal.handle(Terminal.Signal.INT, prev); } } catch (InterruptedIOException e) { // Ignore } finally { abort = true; executorService.shutdownNow(); } } return null; }
@Override public Object execute() throws Exception { if (arguments == null || arguments.length() == 0) { System.err.println("Argument expected"); } else { WatchTask watchTask = new WatchTask(); executorService.scheduleAtFixedRate(watchTask, 0, interval, TimeUnit.SECONDS); try { Terminal terminal = (Terminal) session.get(".jline.terminal"); Terminal.SignalHandler prev = terminal.handle(Terminal.Signal.INT, this::abort); Attributes attr = terminal.enterRawMode(); try { reading = Thread.currentThread(); while (terminal.reader().read(1) == NonBlockingReader.READ_EXPIRED); } finally { reading = null; terminal.setAttributes(attr); terminal.handle(Terminal.Signal.INT, prev); } } catch (InterruptedIOException e) { // Ignore } finally { abort = true; executorService.shutdownNow(); } } return null; }
keyReader = new BindingReader(terminal.reader()); inputThread = new InputThread(); inputThread.start();
private void sillyLess(InputStream in) throws IOException { BufferedReader breader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); String man; int index = 0; while ((man = breader.readLine()) != null) { index++; sqlLine.output(man); // silly little pager if (index % (sqlLine.getOpts().getMaxHeight() - 1) == 0) { String prompt = sqlLine.loc("enter-for-more"); sqlLine.getLineReader().getTerminal().writer().write(prompt); int c; // The logic to prevent reaction of SqlLineParser here do { c = sqlLine.getLineReader().getTerminal().reader().read(100); } while (c != -1 && c != 13 && c != 'q'); if (c == -1 || c == 'q') { sqlLine.getLineReader().getTerminal().writer().write('\n'); break; } } } breader.close(); }
private static int readExt(Terminal terminal) { try { // The coordinates are encoded in UTF-8, so if that's not the input encoding, // we need to get around int c; if (terminal.encoding() != StandardCharsets.UTF_8) { c = new InputStreamReader(terminal.input(), StandardCharsets.UTF_8).read(); } else { c = terminal.reader().read(); } if (c < 0) { throw new EOFException(); } return c; } catch (IOException e) { throw new IOError(e); } }
executorService.scheduleAtFixedRate(task, 0, interval, TimeUnit.SECONDS); Attributes attr = terminal.enterRawMode(); terminal.reader().read(); terminal.setAttributes(attr); } finally {
public TTop(Terminal terminal) { this.terminal = terminal; this.display = new Display(terminal, true); this.bindingReader = new BindingReader(terminal.reader()); DecimalFormatSymbols dfs = new DecimalFormatSymbols(); dfs.setDecimalSeparator('.'); DecimalFormat perc = new DecimalFormat("0.00%", dfs); register(STAT_TID, Right, "TID", o -> String.format("%3d", (Long) o)); register(STAT_NAME, Left, "NAME", padcut(40)); register(STAT_STATE, Left, "STATE", o -> o.toString().toLowerCase()); register(STAT_BLOCKED_TIME, Right, "T-BLOCKED", o -> millis((Long) o)); register(STAT_BLOCKED_COUNT, Right, "#-BLOCKED", Object::toString); register(STAT_WAITED_TIME, Right, "T-WAITED", o -> millis((Long) o)); register(STAT_WAITED_COUNT, Right, "#-WAITED", Object::toString); register(STAT_LOCK_NAME, Left, "LOCK-NAME", Object::toString); register(STAT_LOCK_OWNER_ID, Right, "LOCK-OWNER-ID", id -> ((Long) id) >= 0 ? id.toString() : ""); register(STAT_LOCK_OWNER_NAME, Left, "LOCK-OWNER-NAME", name -> name != null ? name.toString() : ""); register(STAT_USER_TIME, Right, "T-USR", o -> nanos((Long) o)); register(STAT_CPU_TIME, Right, "T-CPU", o -> nanos((Long) o)); register(STAT_USER_TIME_PERC, Right, "%-USR", perc::format); register(STAT_CPU_TIME_PERC, Right, "%-CPU", perc::format); keys = new KeyMap<>(); bindKeys(keys); }
public TTop(Terminal terminal) { this.terminal = terminal; this.display = new Display(terminal, true); this.bindingReader = new BindingReader(terminal.reader()); DecimalFormatSymbols dfs = new DecimalFormatSymbols(); dfs.setDecimalSeparator('.'); DecimalFormat perc = new DecimalFormat("0.00%", dfs); register(STAT_TID, Right, "TID", o -> String.format("%3d", (Long) o)); register(STAT_NAME, Left, "NAME", padcut(40)); register(STAT_STATE, Left, "STATE", o -> o.toString().toLowerCase()); register(STAT_BLOCKED_TIME, Right, "T-BLOCKED", o -> millis((Long) o)); register(STAT_BLOCKED_COUNT, Right, "#-BLOCKED", Object::toString); register(STAT_WAITED_TIME, Right, "T-WAITED", o -> millis((Long) o)); register(STAT_WAITED_COUNT, Right, "#-WAITED", Object::toString); register(STAT_LOCK_NAME, Left, "LOCK-NAME", Object::toString); register(STAT_LOCK_OWNER_ID, Right, "LOCK-OWNER-ID", id -> ((Long) id) >= 0 ? id.toString() : ""); register(STAT_LOCK_OWNER_NAME, Left, "LOCK-OWNER-NAME", name -> name != null ? name.toString() : ""); register(STAT_USER_TIME, Right, "T-USR", o -> nanos((Long) o)); register(STAT_CPU_TIME, Right, "T-CPU", o -> nanos((Long) o)); register(STAT_USER_TIME_PERC, Right, "%-USR", perc::format); register(STAT_CPU_TIME_PERC, Right, "%-CPU", perc::format); keys = new KeyMap<>(); bindKeys(keys); }