gnodet opened a new pull request, #24351: URL: https://github.com/apache/camel/pull/24351
## Summary _Claude Code on behalf of Guillaume Nodet_ Add comprehensive mouse event handling to the Camel TUI monitor: - **Mouse wheel scrolling** in all scrollable views: logs, diagrams, topology, routes, errors, history, metrics, process info, configuration, spans, startup, and HTTP spec/probe views - **Click on tab headers** to switch between tabs (Overview, Log, Diagram, Route, Endpoint, HTTP, Health, Inspect, Errors, More) - **Click on topology nodes** and EIP nodes in diagram views to select them - **Drag panel border** between content area and shell/AI panel to resize the split - **Mouse scroll in shell panel and AI panel** (AI panel was missing scroll support) ### Implementation Details - `MonitorTab` interface gains a default `handleMouseEvent(MouseEvent, Rect)` method - `CamelMonitor` dispatches mouse events to the active tab, handles tab bar click detection, and panel border drag resize - `DiagramSupport` provides `handleMouseScroll()` for wheel scrolling and `handleNodeClick()`/`handleEipNodeClick()` for click-to-select on topology and route diagram node boxes - `ShellPanel` and `AiPanel` gain `setSplitPercent()` for continuous drag resize (snapping to nearest preset: 25%, 50%, 75%, 100%) - 14 tab implementations override `handleMouseEvent()` with view-specific scroll handling ### Files Changed (16 files, +527 lines) | File | Change | |------|--------| | `MonitorTab.java` | Added `handleMouseEvent()` default method | | `CamelMonitor.java` | Mouse dispatch, tab click detection, panel drag resize | | `DiagramSupport.java` | Mouse scroll, node click hit-testing | | `DiagramTab.java` | Delegate mouse to DiagramSupport | | `RoutesTab.java` | Delegate mouse to DiagramSupport | | `LogTab.java` | Mouse wheel scroll for log view | | `ProcessTab.java` | Mouse wheel scroll for process info | | `ErrorsTab.java` | Mouse scroll + diagram node clicks | | `HistoryTab.java` | Mouse scroll + diagram node clicks | | `MetricsTab.java` | Mouse wheel scroll for raw metrics view | | `HttpTab.java` | Mouse scroll for spec and probe views | | `SpansTab.java` | Mouse scroll for waterfall view | | `StartupTab.java` | Mouse wheel scroll | | `ConfigurationTab.java` | Mouse wheel scroll | | `ShellPanel.java` | Added `setSplitPercent()` for drag resize | | `AiPanel.java` | Mouse scroll + `setSplitPercent()` for drag resize | ## Test plan - [ ] Verify mouse wheel scrolling works in the Log tab - [ ] Verify mouse wheel scrolling works in the Diagram/Topology view - [ ] Verify clicking on tab labels switches to the correct tab - [ ] Verify clicking on topology nodes selects them - [ ] Verify dragging the shell/AI panel border resizes the split - [ ] Verify mouse wheel scrolling works in all other scrollable tabs - [ ] Verify existing keyboard navigation still works as before 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
