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

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

commit 7383afbcf9d6cd0fd079efc9d23d004eedf1cd20
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri May 15 17:28:43 2026 +0200

    CAMEL-23514: Promote detail-panel ScrollbarState to class-level fields
    
    Avoid allocating new ScrollbarState() on every render frame for History and
    Trace detail panels. Promote to class-level fields alongside the existing
    diagramVScrollState/diagramHScrollState fields.
    
    Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
---
 .../dsl/jbang/core/commands/tui/CamelMonitor.java    | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 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 0df113011781..4d8c9a0ddcff 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
@@ -212,6 +212,8 @@ public class CamelMonitor extends CamelCommand {
     private int diagramScrollX;
     private final ScrollbarState diagramVScrollState = new ScrollbarState();
     private final ScrollbarState diagramHScrollState = new ScrollbarState();
+    private final ScrollbarState traceDetailScrollState = new ScrollbarState();
+    private final ScrollbarState historyDetailScrollState = new 
ScrollbarState();
     private String diagramRouteId;
     private ImageData diagramImageData;
     private ImageData diagramFullImageData;
@@ -2431,13 +2433,12 @@ public class CamelMonitor extends CamelCommand {
         frame.renderWidget(detail, hChunks.get(0));
 
         if (contentHeight > visibleHeight) {
-            ScrollbarState scrollState = new ScrollbarState();
-            scrollState.contentLength(contentHeight);
-            scrollState.viewportContentLength(visibleHeight);
-            scrollState.position(traceDetailScroll);
+            traceDetailScrollState.contentLength(contentHeight);
+            traceDetailScrollState.viewportContentLength(visibleHeight);
+            traceDetailScrollState.position(traceDetailScroll);
             frame.renderStatefulWidget(
                     Scrollbar.builder().build(),
-                    hChunks.get(1), scrollState);
+                    hChunks.get(1), traceDetailScrollState);
         }
     }
 
@@ -2714,13 +2715,12 @@ public class CamelMonitor extends CamelCommand {
         frame.renderWidget(detail, hChunks.get(0));
 
         if (contentHeight > visibleHeight) {
-            ScrollbarState scrollState = new ScrollbarState();
-            scrollState.contentLength(contentHeight);
-            scrollState.viewportContentLength(visibleHeight);
-            scrollState.position(historyDetailScroll);
+            historyDetailScrollState.contentLength(contentHeight);
+            historyDetailScrollState.viewportContentLength(visibleHeight);
+            historyDetailScrollState.position(historyDetailScroll);
             frame.renderStatefulWidget(
                     Scrollbar.builder().build(),
-                    hChunks.get(1), scrollState);
+                    hChunks.get(1), historyDetailScrollState);
         }
     }
 

Reply via email to