This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch tui-keystroke-overlay
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 7486c96548e03e761ab58192af0e28ebb53fc9bc
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu May 21 18:40:43 2026 +0200

    camel-tui: Make F2 global, add adoc fallback for bundled example docs
    
    - F2 actions menu now works on all tabs, not just overview
    - F2 hint shown in footer on all tabs after Esc
    - Bundled examples fall back to README.adoc if README.md not found
    
    Co-Authored-By: Claude <[email protected]>
---
 .../camel/dsl/jbang/core/commands/tui/ActionsPopup.java |  4 ++++
 .../camel/dsl/jbang/core/commands/tui/CamelMonitor.java | 17 +++++++++++------
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ActionsPopup.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ActionsPopup.java
index ce5affa808f0..bb12dfcec2b6 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ActionsPopup.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ActionsPopup.java
@@ -553,6 +553,10 @@ class ActionsPopup {
         boolean isAdoc = false;
         if (bundled) {
             content = DocHelper.loadResourceContent("examples/" + name + 
"/README.md");
+            if (content == null) {
+                content = DocHelper.loadResourceContent("examples/" + name + 
"/README.adoc");
+                isAdoc = content != null;
+            }
         } else {
             String base = 
"https://raw.githubusercontent.com/apache/camel-jbang-examples/main/"; + name + 
"/";
             content = DocHelper.downloadContent(base + "README.md");
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
index d2cf25145fb7..f34daf997371 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
@@ -408,6 +408,12 @@ public class CamelMonitor extends CamelCommand {
                 return true;
             }
 
+            // F2 opens actions menu (global)
+            if (ke.isKey(KeyCode.F2)) {
+                actionsPopup.open();
+                return true;
+            }
+
             // Tab-specific keys — delegate to active tab first
             int tab = tabsState.selected();
             MonitorTab activeTab = activeTab();
@@ -521,12 +527,6 @@ public class CamelMonitor extends CamelCommand {
                 showKillConfirm = true;
                 return true;
             }
-            // Overview tab: F2 opens actions menu
-            if (tab == TAB_OVERVIEW && ke.isKey(KeyCode.F2)) {
-                actionsPopup.open();
-                return true;
-            }
-
             // Delegate remaining keys to active tab
             if (activeTab != null && activeTab.handleKeyEvent(ke)) {
                 return true;
@@ -1571,6 +1571,11 @@ public class CamelMonitor extends CamelCommand {
 
         if (tab != null) {
             tab.renderFooter(spans);
+            // Insert F2 after the first hint (Esc) — each hint is 2 spans 
(key + label)
+            int insertPos = Math.min(2, spans.size());
+            List<Span> f2Spans = new ArrayList<>();
+            hint(f2Spans, "F2", "actions");
+            spans.addAll(insertPos, f2Spans);
         } else {
             renderOverviewFooter(spans);
         }

Reply via email to