[
https://issues.apache.org/jira/browse/CAMEL-23831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-23831:
-----------------------------------
Assignee: Adriano Machado
> 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 only the ShellPanel handles mouse events (scroll only). This ticket
> covers adding mouse interactions to the main TUI:
> _Initial scope (this ticket):_
> * Click on tab labels to switch tabs (instead of pressing number keys 1-9, 0)
> * Scroll wheel in content area to navigate table rows (tabs using
> {{TableState}})
> * Scroll wheel in log view ({{LogTab}} has custom scroll logic)
> _Deferred to follow-up tickets:_
> * Click on table rows to select them
> * Click on popup items (More popup, Switch popup)
> * Drag support
> _Implementation approach:_
> * Add a default {{handleMouseEvent(MouseEvent, Rect)}} method to the
> {{MonitorTab}} interface, with {{getTableState()}}/{{getTableRowCount()}}
> accessors so table-bearing tabs get scroll support with minimal overrides
> * Store rendered {{Rect}} areas in {{CamelMonitor}} during {{render()}} for
> hit-testing during {{handleEvent()}}
> * Add {{handleTabBarClick()}} in {{CamelMonitor}} to map click x-coordinates
> to tab labels
> * Override {{handleMouseEvent}} in {{LogTab}} for its custom scroll field
> * Add {{getTableState()}}/{{getTableRowCount()}} overrides to all ~20
> table-bearing tabs
> No new dependencies required. Uses existing TamboUI {{MouseEvent}} API.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)