This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch feature/CAMEL-23672-tui-diagram in repository https://gitbox.apache.org/repos/asf/camel.git
commit 9ba43a8e9ed8a954aaacd29090e9aaed32bbad7a Author: Claus Ibsen <[email protected]> AuthorDate: Thu Jun 4 07:31:39 2026 +0200 CAMEL-23672: camel-tui - Collapse breadcrumb when navigating back to a previous route Co-Authored-By: Claude Opus 4.6 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../camel/dsl/jbang/core/commands/tui/DiagramTab.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DiagramTab.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DiagramTab.java index 1560e690b30b..b6cae5d432d0 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DiagramTab.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DiagramTab.java @@ -151,7 +151,18 @@ class DiagramTab implements MonitorTab { if (!topologyMode && ke.isConfirm() && !diagram.getEipNodeBoxes().isEmpty()) { String linkedRouteId = diagram.findLinkedRouteId(drillDownRouteId); if (linkedRouteId != null && diagram.getRouteLayout(linkedRouteId) != null) { - routeNavigationStack.push(drillDownRouteId); + if (linkedRouteId.equals(drillDownRouteId)) { + return true; + } + // Collapse breadcrumb if navigating back to a route already in the stack + if (routeNavigationStack.contains(linkedRouteId)) { + while (!routeNavigationStack.isEmpty() && !linkedRouteId.equals(routeNavigationStack.peek())) { + routeNavigationStack.pop(); + } + routeNavigationStack.pop(); + } else { + routeNavigationStack.push(drillDownRouteId); + } drillDownRouteId = linkedRouteId; diagram.selectFromNode(linkedRouteId); diagram.resetScroll();
