pub struct Table { /* private fields */ }Expand description
A table component with sortable columns, row selection, and interactive filtering.
Renders as a header row, a separator line, and data rows. The selected row
shows a > prefix and is highlighted with the theme’s accent color when
the table is focused.
§Hooks
on_select— fired when the user navigates rows.on_sort— fired when sort column or direction changes.on_filter— fired when the filter query changes.on_filter_char— transforms or rejects filter characters during interactive filter mode.
Implementations§
Source§impl Table
impl Table
Sourcepub fn new(columns: Vec<Column>, rows: Vec<Row>) -> Self
pub fn new(columns: Vec<Column>, rows: Vec<Row>) -> Self
Create a new table with the given columns and rows.
Sourcepub fn set_selected(&mut self, index: usize)
pub fn set_selected(&mut self, index: usize)
Set the selected row index (clamped to valid visible range).
Sourcepub fn set_sort_column(&mut self, column: Option<usize>)
pub fn set_sort_column(&mut self, column: Option<usize>)
Set the column used for sorting display.
Sourcepub fn set_sort_ascending(&mut self, ascending: bool)
pub fn set_sort_ascending(&mut self, ascending: bool)
Set whether the current sort is ascending.
Sourcepub fn sort_by(&mut self, column: usize)
pub fn sort_by(&mut self, column: usize)
Sort by the given column index. Toggles direction if already sorting by the same column. Does nothing if the column is not sortable.
Sourcepub fn clear_sort(&mut self)
pub fn clear_sort(&mut self)
Clear sorting and restore original row order.
Sourcepub fn set_filter(&mut self, query: impl Into<String>)
pub fn set_filter(&mut self, query: impl Into<String>)
Set a filter query. Only rows with at least one cell containing the query (case-insensitive) are displayed.
Sourcepub fn clear_filter(&mut self)
pub fn clear_filter(&mut self)
Clear the filter and show all rows.
Sourcepub fn filter_query(&self) -> Option<&str>
pub fn filter_query(&self) -> Option<&str>
Return the current filter query, if any.
Sourcepub fn sort_column_index(&self) -> Option<usize>
pub fn sort_column_index(&self) -> Option<usize>
Return the current sort column, if any.
Sourcepub fn sort_ascending(&self) -> bool
pub fn sort_ascending(&self) -> bool
Return whether the current sort is ascending.
Sourcepub fn in_filter_mode(&self) -> bool
pub fn in_filter_mode(&self) -> bool
Return true if the table is currently accepting interactive filter
input.
Sourcepub fn displayed_row_count(&self) -> usize
pub fn displayed_row_count(&self) -> usize
Return the number of rows currently displayed (after filtering).
Sourcepub fn selected_original_index(&self) -> Option<usize>
pub fn selected_original_index(&self) -> Option<usize>
Return the original row index of the currently selected visible row.
Sourcepub fn selected_row(&self) -> Option<&Row>
pub fn selected_row(&self) -> Option<&Row>
Return a reference to the currently selected visible row.
Sourcepub fn on_select(self, cb: impl Fn(usize) + 'static) -> Self
pub fn on_select(self, cb: impl Fn(usize) + 'static) -> Self
Attach a callback invoked when the selected row changes via keyboard navigation.
Sourcepub fn on_sort(self, cb: impl Fn(usize, bool) + 'static) -> Self
pub fn on_sort(self, cb: impl Fn(usize, bool) + 'static) -> Self
Attach a callback invoked when sort column or direction changes.
Sourcepub fn on_filter(self, cb: impl Fn(&str) + 'static) -> Self
pub fn on_filter(self, cb: impl Fn(&str) + 'static) -> Self
Attach a callback invoked when the filter query changes.
Sourcepub fn on_filter_char(self, cb: impl Fn(char) -> Option<char> + 'static) -> Self
pub fn on_filter_char(self, cb: impl Fn(char) -> Option<char> + 'static) -> Self
Attach a callback invoked for each character typed in interactive filter
mode. Return Some(transformed) to accept the character (possibly
modified) or None to reject it.
Sourcepub fn filter_key(self, key: char) -> Self
pub fn filter_key(self, key: char) -> Self
Set the key that enters interactive filter mode. Defaults to '/'.
Sourcepub fn sort_indicator_asc(self, indicator: impl Into<String>) -> Self
pub fn sort_indicator_asc(self, indicator: impl Into<String>) -> Self
Set the indicator shown next to a column header when sorted ascending.
Sourcepub fn sort_indicator_desc(self, indicator: impl Into<String>) -> Self
pub fn sort_indicator_desc(self, indicator: impl Into<String>) -> Self
Set the indicator shown next to a column header when sorted descending.
Trait Implementations§
Source§impl Component for Table
impl Component for Table
Source§fn render(&self, width: u16) -> Result<Rendered, RenderError>
fn render(&self, width: u16) -> Result<Rendered, RenderError>
Source§fn handle_input(&mut self, event: &Event) -> InputResult
fn handle_input(&mut self, event: &Event) -> InputResult
Source§fn as_focusable(&self) -> Option<&dyn Focusable>
fn as_focusable(&self) -> Option<&dyn Focusable>
Focusable reference, if supported.Source§fn as_focusable_mut(&mut self) -> Option<&mut dyn Focusable>
fn as_focusable_mut(&mut self) -> Option<&mut dyn Focusable>
Focusable reference, if supported.Source§fn render_rect(&self, rect: Rect) -> Result<Rendered, RenderError>
fn render_rect(&self, rect: Rect) -> Result<Rendered, RenderError>
Source§fn wants_key_release(&self) -> bool
fn wants_key_release(&self) -> bool
true if this component wants to receive
KeyEventKind::Release events in addition to Press / Repeat. Read more