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

davsclaus pushed a commit to branch camel-jbang-diagram-zoom
in repository https://gitbox.apache.org/repos/asf/camel.git

commit a117210c56cbda14e1cd09c1f8030ea8e0015eaa
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun Oct 25 15:17:27 2026 +0100

    chore: camel-jbang - route diagram: the zoom level position counts up as + 
zooms in
    
    bare 1/3, compact 2/3, detailed 3/3: + goes up a number, - down.
    
    Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc   | 3 ++-
 .../camel/dsl/jbang/core/commands/tui/diagram/RouteDensity.java    | 4 ++--
 .../camel/dsl/jbang/core/commands/tui/RouteDiagramZoomTest.java    | 2 +-
 .../dsl/jbang/core/commands/tui/diagram/RouteDensityTest.java      | 7 +++++++
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc
index ce2c7b874ab8..abf9e9b8f72b 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc
@@ -66,7 +66,8 @@ steps fit
 branch, `●` a step), with the counts beside the lines between them
 
 The level you choose is kept for the next start. Press *z* for fit: the most 
detailed level in which the whole route fits the screen. The view bar shows the 
level and
-where it is among the three (`zoom: compact 2/3`, or `zoom: fit bare 3/3`), 
and the title of the diagram how many steps
+where it is among the three, counted up as *+* zooms in (`zoom: bare 1/3`, 
`compact 2/3`, `detailed 3/3`, or
+`zoom: fit bare 1/3`), and the title of the diagram how many steps
 the route has, so you can tell a large route at a glance, and how many of them 
are folded (`38 steps · 12 folded`). Zooming keeps the selected step selected, 
on the same row of the screen, and
 the Info panel has the whole text of the selected step at every level.
 
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensity.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensity.java
index b7665c3132d3..0546f413eb2c 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensity.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensity.java
@@ -65,9 +65,9 @@ public enum RouteDensity {
         return label;
     }
 
-    /** Where the density is among the levels, from the most detail: 2/3. */
+    /** Where the density is among the levels, counted up as + zooms in: bare 
1/3, compact 2/3, detailed 3/3. */
     public String position() {
-        return (ordinal() + 1) + "/" + values().length;
+        return (values().length - ordinal()) + "/" + values().length;
     }
 
     /** One level more detail, or this one when it is the most. */
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteDiagramZoomTest.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteDiagramZoomTest.java
index e9e8f35dd14f..0e53e3881168 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteDiagramZoomTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/RouteDiagramZoomTest.java
@@ -174,7 +174,7 @@ class RouteDiagramZoomTest {
         assertThat(zoom.densityOf(fitted)).isEqualTo(RouteDensity.BARE);
         // the route starts at the top, as without fit
         assertThat(find(fitted, "from1").y).isEqualTo(40);
-        assertThat(zoom.label(layout(zoom, bare))).isEqualTo("fit bare 3/3");
+        assertThat(zoom.label(layout(zoom, bare))).isEqualTo("fit bare 1/3");
         // a zoom key leaves fit
         zoom.zoomIn();
         assertThat(zoom.isFit()).isFalse();
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensityTest.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensityTest.java
index 8d5d48454cf3..9bd1f9a7e2b4 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensityTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/test/java/org/apache/camel/dsl/jbang/core/commands/tui/diagram/RouteDensityTest.java
@@ -177,4 +177,11 @@ class RouteDensityTest {
                 .orElseThrow();
         assertThat(count(compact, '▼')).isEqualTo(4);
     }
+
+    @Test
+    void thePositionCountsUpAsTheDiagramZoomsIn() {
+        assertThat(RouteDensity.BARE.position()).isEqualTo("1/3");
+        assertThat(RouteDensity.COMPACT.position()).isEqualTo("2/3");
+        assertThat(RouteDensity.DETAILED.position()).isEqualTo("3/3");
+    }
 }

Reply via email to