Struct TableKeyMap

Source
pub struct TableKeyMap {
    pub row_up: Binding,
    pub row_down: Binding,
    pub page_up: Binding,
    pub page_down: Binding,
    pub half_page_up: Binding,
    pub half_page_down: Binding,
    pub go_to_start: Binding,
    pub go_to_end: Binding,
}
Expand description

Keyboard binding configuration for table navigation.

This struct defines all the key combinations that control table navigation, including row-by-row movement, page scrolling, and jumping to start/end positions. Each binding can accept multiple key combinations and includes help text for documentation.

§Key Binding Types

  • Row Navigation: Single row up/down movement
  • Page Navigation: Full page up/down scrolling
  • Half Page Navigation: Half page up/down scrolling
  • Jump Navigation: Instant movement to start/end

§Examples

use bubbletea_widgets::table::{TableKeyMap, Model, Column};
use bubbletea_widgets::key;
use crossterm::event::KeyCode;

// Create table with custom key bindings
let mut table = Model::new(vec![Column::new("Data", 20)]);
table.keymap.row_up = key::Binding::new(vec![KeyCode::Char('w')])
    .with_help("w", "move up");
table.keymap.row_down = key::Binding::new(vec![KeyCode::Char('s')])
    .with_help("s", "move down");

Using with help system:

use bubbletea_widgets::table::Model;
use bubbletea_widgets::key::KeyMap as KeyMapTrait;

let table = Model::new(vec![]);
let help_bindings = table.keymap.short_help();
// Returns the most common navigation keys for display

§Default Bindings

  • Row Up: (Up Arrow), k (Vim style)
  • Row Down: (Down Arrow), j (Vim style)
  • Page Up: PgUp, b (Vim style)
  • Page Down: PgDn, f (Vim style)
  • Half Page Up: u (Vim style)
  • Half Page Down: d (Vim style)
  • Go to Start: Home, g (Vim style)
  • Go to End: End, G (Vim style)

Fields§

§row_up: Binding

Key binding for moving selection up one row.

Default: Up arrow key () and k key (Vim-style)

§row_down: Binding

Key binding for moving selection down one row.

Default: Down arrow key () and j key (Vim-style)

§page_up: Binding

Key binding for moving up one full page of rows.

Default: Page Up key and b key (Vim-style)

§page_down: Binding

Key binding for moving down one full page of rows.

Default: Page Down key and f key (Vim-style)

§half_page_up: Binding

Key binding for moving up half a page of rows.

Default: u key (Vim-style)

§half_page_down: Binding

Key binding for moving down half a page of rows.

Default: d key (Vim-style)

§go_to_start: Binding

Key binding for jumping to the first row.

Default: Home key and g key (Vim-style)

§go_to_end: Binding

Key binding for jumping to the last row.

Default: End key and G key (Vim-style)

Trait Implementations§

Source§

impl Clone for TableKeyMap

Source§

fn clone(&self) -> TableKeyMap

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TableKeyMap

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TableKeyMap

Source§

fn default() -> Self

Creates default table key bindings with Vim-style navigation.

The default bindings provide both traditional arrow keys and Vim-style letter keys for maximum compatibility and user preference accommodation.

§Default Key Mappings
BindingKeysDescription
row_up, kMove selection up one row
row_down, jMove selection down one row
page_upPgUp, bMove up one page of rows
page_downPgDn, fMove down one page of rows
half_page_upuMove up half a page
half_page_downdMove down half a page
go_to_startHome, gJump to first row
go_to_endEnd, GJump to last row
§Examples
use bubbletea_widgets::table::TableKeyMap;

// Using default key bindings
let keymap = TableKeyMap::default();

// Check if a binding includes specific help text
assert_eq!(keymap.row_up.help().key, "↑/k");
assert_eq!(keymap.row_up.help().desc, "up");
§Design Philosophy
  • Vim Compatibility: Letter keys follow Vim navigation patterns
  • Arrow Key Support: Traditional navigation for all users
  • Page Navigation: Efficient movement through large datasets
  • Jump Commands: Quick access to start/end positions
Source§

impl KeyMap for TableKeyMap

Source§

fn short_help(&self) -> Vec<&Binding>

Returns a slice of bindings to be displayed in the short version of help. Read more
Source§

fn full_help(&self) -> Vec<Vec<&Binding>>

Returns an extended group of help items, grouped by columns. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.