From a6f7b13c5da2c6ea103a479a69941e1eccf222ca Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Sun, 25 Jan 2026 14:00:35 +0200 Subject: [PATCH] Refactor `Menu` class: Rename variables for clarity (e.g., `selected` to `selectedIndex`, `filter` to `filterString`) and improve readability. --- .../svjatoslav/commons/cli_helper/Menu.java | 37 +++++++++---------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/src/main/java/eu/svjatoslav/commons/cli_helper/Menu.java b/src/main/java/eu/svjatoslav/commons/cli_helper/Menu.java index a118695..8aedcad 100644 --- a/src/main/java/eu/svjatoslav/commons/cli_helper/Menu.java +++ b/src/main/java/eu/svjatoslav/commons/cli_helper/Menu.java @@ -31,14 +31,14 @@ public class Menu { try { setTerminalToRaw(); - int selected = 0; - String filter = ""; + int selectedIndex = 0; + String filterString = ""; int lastTotalLines = 0; - selected = updateDisplay(prompt, options, selected, filter, lastTotalLines); - lastTotalLines = getCurrentTotalLines(options, filter); - while (true) { + selectedIndex = updateDisplay(prompt, options, selectedIndex, filterString, lastTotalLines); + lastTotalLines = getCurrentTotalLines(options, filterString); + int c = System.in.read(); // Handle Escape key or arrow keys @@ -48,41 +48,38 @@ public class Menu { int c2 = System.in.read(); if (c1 == 91) { // [ if (c2 == 65) { // Up arrow (ESC [ A) - selected = selected - 1; + selectedIndex = selectedIndex - 1; } else if (c2 == 66) { // Down arrow (ESC [ B) - selected = selected + 1; + selectedIndex = selectedIndex + 1; } - selected = updateDisplay(prompt, options, selected, filter, lastTotalLines); - lastTotalLines = getCurrentTotalLines(options, filter); } } else { // Esc key alone return null; } } + // Handle Enter key else if (c == 13 || c == 10) { - List filtered = filterOptions(options, filter.toString()); + List filtered = filterOptions(options, filterString.toString()); if (filtered.isEmpty()) { return null; } - return filtered.get(selected); + return filtered.get(selectedIndex); } + // Handle Backspace (8 or 127) else if (c == 8 || c == 127) { - if (filter.length() > 0) { - filter = filter.substring(0, filter.length() - 1); - selected = 0; - selected = updateDisplay(prompt, options, selected, filter, lastTotalLines); - lastTotalLines = getCurrentTotalLines(options, filter); + if (filterString.length() > 0) { + filterString = filterString.substring(0, filterString.length() - 1); + selectedIndex = 0; } } + // Handle printable ASCII characters else if (c >= 32 && c <= 126) { - filter = filter + Character.toString((char)c); - selected = 0; - selected = updateDisplay(prompt, options, selected, filter, lastTotalLines); - lastTotalLines = getCurrentTotalLines(options, filter); + filterString = filterString + (char) c; + selectedIndex = 0; } } } finally { -- 2.20.1