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); } }
