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

davsclaus pushed a commit to branch CAMEL-23514-ascii-diagram-metrics
in repository https://gitbox.apache.org/repos/asf/camel.git

commit f838da67d8457a0f2247c70c1f606d390b694212
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu May 14 09:45:51 2026 +0200

    CAMEL-23514: Add metrics to image diagram with F5 manual refresh
    
    Pass metrics flag to RouteDiagramRenderer for image diagrams so
    counters are shown. Add F5 key to manually refresh the diagram
    (both text and image modes) to update counters on demand. The
    image diagram shows static counters from load time since terminal
    image protocols don't support partial updates. Footer hints show
    F5 refresh when metrics are enabled.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../dsl/jbang/core/commands/tui/CamelMonitor.java  | 24 +++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

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 54a3d7ac7daa..71c0a1bbb99f 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
@@ -57,6 +57,7 @@ import dev.tamboui.text.Text;
 import dev.tamboui.tui.TuiConfig;
 import dev.tamboui.tui.TuiRunner;
 import dev.tamboui.tui.event.Event;
+import dev.tamboui.tui.event.KeyCode;
 import dev.tamboui.tui.event.KeyEvent;
 import dev.tamboui.tui.event.MouseEvent;
 import dev.tamboui.tui.event.MouseEventKind;
@@ -403,10 +404,13 @@ public class CamelMonitor extends CamelCommand {
 
             if (tab == TAB_ROUTES && showDiagram && ke.isCharIgnoreCase('m')) {
                 diagramMetrics = !diagramMetrics;
-                if (diagramTextMode) {
-                    diagramLoading.set(false);
-                    loadDiagramForSelectedRoute();
-                }
+                diagramLoading.set(false);
+                loadDiagramForSelectedRoute();
+                return true;
+            }
+            if (tab == TAB_ROUTES && showDiagram && ke.isKey(KeyCode.F5)) {
+                diagramLoading.set(false);
+                loadDiagramForSelectedRoute();
                 return true;
             }
 
@@ -1359,7 +1363,9 @@ public class CamelMonitor extends CamelCommand {
                     layoutRoutes.add(lr);
                     totalHeight = lr.maxY;
                 }
-                RouteDiagramRenderer renderer = new RouteDiagramRenderer();
+                RouteDiagramRenderer renderer = new RouteDiagramRenderer(
+                        engine.getNodeWidth(), 
RouteDiagramLayoutEngine.DEFAULT_FONT_SIZE * RouteDiagramLayoutEngine.SCALE,
+                        metrics);
                 RouteDiagramRenderer.DiagramColors colors = 
RouteDiagramRenderer.DiagramColors.parse("transparent");
                 java.awt.image.BufferedImage image = 
renderer.renderDiagram(layoutRoutes, totalHeight, colors);
                 ImageData fullImage = ImageData.fromBufferedImage(image);
@@ -2016,7 +2022,12 @@ public class CamelMonitor extends CamelCommand {
             hint(spans, "\u2191\u2193\u2190\u2192", "scroll");
             hint(spans, "PgUp/PgDn", "page");
             hint(spans, "Home/End", "top/bottom");
-            hintLast(spans, "m", "metrics" + (diagramMetrics ? " [on]" : " 
[off]"));
+            hint(spans, "m", "metrics" + (diagramMetrics ? " [on]" : " 
[off]"));
+            if (diagramMetrics && !diagramTextMode) {
+                hintLast(spans, "F5", "refresh counters");
+            } else if (diagramMetrics && diagramTextMode) {
+                hintLast(spans, "F5", "refresh");
+            }
         } else if (tab == TAB_ROUTES) {
             hint(spans, "Esc", "back");
             hint(spans, "\u2191\u2193", "navigate");
@@ -2063,7 +2074,6 @@ public class CamelMonitor extends CamelCommand {
         spans.add(Span.raw(" " + label));
     }
 
-
     // ---- Data Loading ----
 
     private void refreshData() {

Reply via email to