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;

Reply via email to