[ 
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)

Reply via email to