[
https://issues.apache.org/jira/browse/CAMEL-23831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18093382#comment-18093382
]
Claus Ibsen commented on CAMEL-23831:
-------------------------------------
Is there more work for this ?
> camel-tui: add mouse support (tab clicks and scroll)
> ----------------------------------------------------
>
> Key: CAMEL-23831
> URL: https://issues.apache.org/jira/browse/CAMEL-23831
> Project: Camel
> Issue Type: New Feature
> Components: camel-jbang
> Reporter: Adriano Machado
> Assignee: Adriano Machado
> Priority: Minor
> Fix For: 4.22.0
>
>
> h3. Add mouse support to the Camel TUI JBang plugin.
> The TUI already enables mouse capture via TamboUI's {{mouseCapture(true)}},
> but originally only the ShellPanel handled mouse events (scroll only). This
> ticket covers adding mouse interactions to the main TUI.
> The work was delivered across two pull requests:
> *Delivered in PR #24351 (merged):*
> * Mouse-wheel scrolling (3 lines per tick) in all table-based tabs
> * Click-to-select rows in tables
> * Tab-bar click navigation
> * More / Switch dropdown mouse handling (click an entry, outside-click to
> dismiss, wheel to move highlight)
> * Vertical scrollbar rendering and drag support
> * Topology / EIP node click selection in diagram views
> * Panel-border drag resize for the Shell and AI panels
> * Log-view scroll ({{LogTab}} custom scroll logic)
> *Delivered in PR #24365 (this ticket's remaining follow-up):*
> * Footer key bindings clickable: clicking a hint (F1/help, F2/actions,
> Enter/open, single-letter actions) synthesizes that key through the normal
> key path; ambiguous multi-key hints stay non-clickable
> * Actions popup and doc picker clickable: click an entry to select/activate
> via a synthetic Enter, outside-click goes back one level via a synthetic Esc,
> wheel moves the highlight
> * Overview divider fix: clicking the "Dev/Infra Services" divider row no
> longer moves the selection onto it (matches keyboard navigation, which skips
> it)
> *Still keyboard-only (not in scope):*
> * The example and infra browsers, whose wrapped, variable-height rows cannot
> be reliably hit-tested
> *Implementation approach:*
> * A default {{handleMouseEvent(MouseEvent, Rect)}} method on the
> {{MonitorTab}} interface, with {{getTableState()}}/{{getTableRowCount()}}
> accessors so table-bearing tabs get scroll and click support with minimal
> overrides
> * Rendered {{Rect}} areas stored in {{CamelMonitor}} during {{render()}} for
> hit-testing during event dispatch
> * Static hit-testing helpers ({{tableRowAt}}, {{tabIndexAt}},
> {{footerKeyEvent}}, {{footerRegionAt}}, {{listItemAt}}) unit-tested directly
> No new dependencies required. Uses the existing TamboUI {{MouseEvent}} API.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)