davsclaus opened a new pull request, #29468:
URL: https://github.com/apache/camel/pull/29468

   _Claude Code on behalf of davsclaus_
   
   Stacked on #29467 (the focus borders): retarget to `main` before #29467 is 
merged with its branch deleted.
   
   I walked every tab with clicks and the mouse wheel (raw xterm mouse 
sequences sent into a running TUI with the circuit breaker example) and fixed 
where they did nothing or went to the wrong panel.
   
   **Clicks**
   - **Overview ▸ About**: a click selects an entry of In, Routes or Out: its 
name, or the line under it (its exchanges, or the route that sends to it). 
Before, About had no mouse handling at all, and a click went to the hidden 
Integrations table behind it, which could select another integration.
   - **Heap Histogram**: a click selects a row. The tab never recorded where 
its table was, so the row click did nothing.
   - **JFR**: a click on the name of a view (`Routes | Processors | Endpoints | 
Failures | Redeliveries`) shows it, as `Space` does.
   - **Timeline**: paused, a click on a strip puts the cursor on the second 
clicked (and the open exchanges list follows); a click on an exchange of the 
list selects it.
   
   **The wheel scrolls the panel under the mouse**, as Inspect already does
   - **Errors**: over the table the wheel goes through the errors, over the 
detail it scrolls the detail. Before, it always scrolled the detail.
   - **Threads, Beans, Configuration**: over the detail (stack trace) the wheel 
scrolls it, where it moved the table selection before. A click or the wheel 
also gives that panel the focus, as `Tab` does.
   
   `AbstractTableTab` handles the table + detail case for all four: a tab sets 
`lastDetailArea` and implements `focusDetail`, `scrollDetail` and `rowClicked`.
   
   The help pages of these tabs say what the mouse does.
   
   Tests: `AboutViewTest`, `TimelineTabRenderTest`, `JfrTabRenderTest`, 
`ErrorsTabRenderTest` and `ConfigurationTabRenderTest` click and scroll the 
rendered tabs. All 2416 tests of the plugin pass; checked live with the circuit 
breaker example (this PR is stacked, so CI runs no build until it targets main).
   
   🤖 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]

Reply via email to