This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch CAMEL-23720 in repository https://gitbox.apache.org/repos/asf/camel.git
commit c5c02a94c46e7238797c78b3b346a241e0a23932 Author: Adriano Machado <[email protected]> AuthorDate: Sat Jul 4 14:35:35 2026 -0400 CAMEL-23720: Centralize remaining TUI glyphs through TuiIcons Migrate raw emoji literals that lived in popup/browser classes to the TuiIcons registry, completing the single-source-of-truth goal: - ExampleBrowserPopup: bundled/online/Docker/infra/Citrus icons and legend - InfraBrowserPopup: infra service row prefix - FolderBrowser: directory icon - DoctorPopup: MCP connection check now uses TuiIcons.MCP instead of reusing TuiIcons.OTEL (which stays for OTel Spans) Co-Authored-By: Claude Opus 4.8 <[email protected]> --- .../org/apache/camel/dsl/jbang/core/commands/tui/DoctorPopup.java | 6 +++--- .../camel/dsl/jbang/core/commands/tui/ExampleBrowserPopup.java | 8 +++++--- .../apache/camel/dsl/jbang/core/commands/tui/FolderBrowser.java | 4 ++-- .../camel/dsl/jbang/core/commands/tui/InfraBrowserPopup.java | 2 +- .../apache/camel/dsl/jbang/core/commands/tui/TabRegistryTest.java | 6 +++--- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DoctorPopup.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DoctorPopup.java index c6e36f83c83f..ac1e25d774c2 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DoctorPopup.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DoctorPopup.java @@ -310,13 +310,13 @@ class DoctorPopup { String client = mcpConnectedClient != null ? mcpConnectedClient.get() : null; if (client != null) { result.add(Line.from( - Span.raw(TuiIcons.indent(TuiIcons.OTEL)), + Span.raw(TuiIcons.indent(TuiIcons.MCP)), Span.styled(String.format("%-14s", "MCP"), Style.EMPTY.bold()), Span.raw(String.format("%-30s", client + " (port " + mcpPort + ")")), Span.raw(" " + TuiIcons.OK))); } else { result.add(Line.from( - Span.raw(TuiIcons.indent(TuiIcons.OTEL)), + Span.raw(TuiIcons.indent(TuiIcons.MCP)), Span.styled(String.format("%-14s", "MCP"), Style.EMPTY.bold()), Span.raw(String.format("%-30s", "Listening on port " + mcpPort)), Span.raw(" " + TuiIcons.WARN))); @@ -325,7 +325,7 @@ class DoctorPopup { } } else { result.add(Line.from( - Span.raw(TuiIcons.indent(TuiIcons.OTEL)), + Span.raw(TuiIcons.indent(TuiIcons.MCP)), Span.styled(String.format("%-14s", "MCP"), Style.EMPTY.bold()), Span.raw(String.format("%-30s", "Not enabled")), Span.raw(" " + TuiIcons.WARN))); diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ExampleBrowserPopup.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ExampleBrowserPopup.java index 01d2b5b8dcf9..dcbae7e6cdf2 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ExampleBrowserPopup.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ExampleBrowserPopup.java @@ -404,8 +404,8 @@ class ExampleBrowserPopup { boolean citrus = ExampleHelper.hasCitrusTests(ex); boolean infra = !ExampleHelper.getInfraServices(ex).isEmpty(); - String icons = (bundled ? "📦" : "🌐") + (docker ? "🐳" : " ") - + (infra ? "🔧" : " ") + (citrus ? "🍋" : " "); + String icons = (bundled ? TuiIcons.BUNDLED : TuiIcons.ONLINE) + (docker ? TuiIcons.DOCKER : " ") + + (infra ? TuiIcons.INFRA : " ") + (citrus ? TuiIcons.CITRUS : " "); int nameCol = Math.min(30, width / 3); String padded = String.format("%-" + nameCol + "s", TuiHelper.truncate(name, nameCol)); String prefix = " " + icons + " " + padded + " "; @@ -426,7 +426,9 @@ class ExampleBrowserPopup { } } items.add(ListItem.from("")); - items.add(ListItem.from(" 📦 = bundled 🌐 = online 🐳 = Docker 🔧 = infra services 🍋 = Citrus tests") + items.add(ListItem.from(" " + TuiIcons.BUNDLED + " = bundled " + TuiIcons.ONLINE + " = online " + + TuiIcons.DOCKER + " = Docker " + TuiIcons.INFRA + " = infra services " + TuiIcons.CITRUS + + " = Citrus tests") .style(Style.EMPTY.dim())); return items; } diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/FolderBrowser.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/FolderBrowser.java index 314453b15588..d3d279f2ba8c 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/FolderBrowser.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/FolderBrowser.java @@ -106,7 +106,7 @@ class FolderBrowser { .forEach(p -> { String name = p.getFileName().toString(); if (Files.isDirectory(p)) { - dirs.add(new DirEntry("📁", name, p.toString(), true)); + dirs.add(new DirEntry(TuiIcons.FOLDER, name, p.toString(), true)); } else { files.add(new DirEntry(TuiHelper.fileEmoji(p), name, p.toString(), false)); } @@ -120,7 +120,7 @@ class FolderBrowser { List<DirEntry> found = new ArrayList<>(); Path parent = dir.getParent(); if (parent != null) { - found.add(new DirEntry("📁", "..", parent.toString(), true)); + found.add(new DirEntry(TuiIcons.FOLDER, "..", parent.toString(), true)); } found.addAll(dirs); found.addAll(files); diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/InfraBrowserPopup.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/InfraBrowserPopup.java index af8e75fc15d1..4ac21e8b4d85 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/InfraBrowserPopup.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/InfraBrowserPopup.java @@ -288,7 +288,7 @@ class InfraBrowserPopup { List<ListItem> items = new ArrayList<>(); for (InfraServiceEntry entry : catalog) { String padded = String.format("%-" + nameCol + "s", TuiHelper.truncate(entry.alias(), nameCol)); - String prefix = " 🔧 " + padded + " "; + String prefix = TuiIcons.indent(TuiIcons.INFRA) + padded + " "; if (entry.running()) { items.add(ListItem.from(prefix + "(running)").style(Style.EMPTY.dim())); } else { diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/TabRegistryTest.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/TabRegistryTest.java index 287d8d4c713c..8e5a0757db69 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/TabRegistryTest.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/TabRegistryTest.java @@ -82,8 +82,8 @@ class TabRegistryTest { } @Test - void moreTabsHasEighteenEntries() { - assertEquals(18, registry.moreTabs().size()); + void moreTabsHasNineteenEntries() { + assertEquals(19, registry.moreTabs().size()); } @Test @@ -109,7 +109,7 @@ class TabRegistryTest { // MORE_SHORTCUTS array carried before the MoreTab refactor. A label edit that repoints a key must fail here. List<Character> shortcuts = registry.moreTabs().stream().map(TabRegistry.MoreTab::shortcut).toList(); assertEquals( - List.of('B', 'W', 'C', 'A', 'G', 'N', 'D', 'H', 'I', 'M', 'K', 'E', 'Q', 'R', 'O', 'P', 'S', 'T'), + List.of('B', 'W', 'C', 'A', 'G', 'N', 'V', 'D', 'H', 'I', 'M', 'K', 'E', 'Q', 'R', 'O', 'P', 'S', 'T'), shortcuts, "More tab shortcut letters must match the historical sequence"); }
