This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch fix-tui-layout-polish in repository https://gitbox.apache.org/repos/asf/camel.git
commit d74a3971aa608572cae9a5dea97362b32e56b8b4 Author: Guillaume Nodet <[email protected]> AuthorDate: Mon Jun 29 15:44:10 2026 +0200 fix: make TUI charts fill available width on wide terminals Charts previously used a fixed 60-point buffer which left empty space on wide terminals. Increase history buffers to 300 points and compute renderPoints dynamically from the available area width so sparklines and bar charts fill their panels. Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../apache/camel/dsl/jbang/core/commands/tui/EndpointsTab.java | 8 ++++---- .../camel/dsl/jbang/core/commands/tui/MetricsCollector.java | 4 ++-- .../org/apache/camel/dsl/jbang/core/commands/tui/OverviewTab.java | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/EndpointsTab.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/EndpointsTab.java index 68813cbb9ee0..e50c0b0acb79 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/EndpointsTab.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/EndpointsTab.java @@ -51,7 +51,7 @@ import static org.apache.camel.dsl.jbang.core.commands.tui.MonitorContext.*; class EndpointsTab implements MonitorTab { private static final String[] SORT_COLUMNS = { "component", "route", "dir", "total", "body", "hdr", "uri" }; - private static final int MAX_CHART_POINTS = 60; + private static final int MAX_CHART_POINTS = 300; private static final int CHART_ALL = 0; private static final int CHART_SINGLE = 1; private static final int CHART_OFF = 2; @@ -426,7 +426,7 @@ class EndpointsTab implements MonitorTab { LinkedList<Long> inHist = inHistMap.getOrDefault(pid, new LinkedList<>()); LinkedList<Long> outHist = outHistMap.getOrDefault(pid, new LinkedList<>()); - int renderPoints = MAX_CHART_POINTS; + int renderPoints = Math.min(MAX_CHART_POINTS, Math.max(2, hSplit.get(1).width() - 6)); long[] inArr = new long[renderPoints]; long[] outArr = new long[renderPoints]; for (int i = 0; i < renderPoints; i++) { @@ -529,7 +529,7 @@ class EndpointsTab implements MonitorTab { LinkedList<Long> inHist = perEndpointInHistory.getOrDefault(key, new LinkedList<>()); LinkedList<Long> outHist = perEndpointOutHistory.getOrDefault(key, new LinkedList<>()); - int renderPoints = MAX_CHART_POINTS; + int renderPoints = Math.min(MAX_CHART_POINTS, Math.max(2, hSplit.get(1).width() - 6)); long[] inArr = new long[renderPoints]; long[] outArr = new long[renderPoints]; for (int i = 0; i < renderPoints; i++) { @@ -576,7 +576,7 @@ class EndpointsTab implements MonitorTab { LinkedList<Long> inHist = endpointInSizeHistory.getOrDefault(pid, new LinkedList<>()); LinkedList<Long> outHist = endpointOutSizeHistory.getOrDefault(pid, new LinkedList<>()); - int renderPoints = MAX_CHART_POINTS; + int renderPoints = Math.min(MAX_CHART_POINTS, Math.max(2, area.width() - 6)); long[] inArr = new long[renderPoints]; long[] outArr = new long[renderPoints]; for (int i = 0; i < renderPoints; i++) { diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MetricsCollector.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MetricsCollector.java index a2db00029ec8..974af492c85f 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MetricsCollector.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/MetricsCollector.java @@ -29,8 +29,8 @@ import java.util.concurrent.ConcurrentHashMap; */ class MetricsCollector { - static final int MAX_SPARKLINE_POINTS = 60; - static final int MAX_ENDPOINT_CHART_POINTS = 60; + static final int MAX_SPARKLINE_POINTS = 300; + static final int MAX_ENDPOINT_CHART_POINTS = 300; static final int MAX_HEAP_HISTORY_POINTS = 120; static final long HEAP_SAMPLE_INTERVAL_MS = 5000; diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/OverviewTab.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/OverviewTab.java index f10de9aac7de..486a7bcac2dd 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/OverviewTab.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/OverviewTab.java @@ -54,7 +54,7 @@ import static org.apache.camel.dsl.jbang.core.common.CamelCommandHelper.extractS class OverviewTab implements MonitorTab { private static final long VANISH_DURATION_MS = 6000; - private static final int MAX_SPARKLINE_POINTS = 60; + private static final int MAX_SPARKLINE_POINTS = 300; private static final String[] SORT_COLUMNS = { "pid", "name", "version", "status", "total", "fail" }; static final int CHART_ALL = 0;
