Struct cursive_table_view::TableView [] [src]

pub struct TableView<T: TableViewItem<H>, H: Eq + Hash + Copy + Clone + 'static> { /* fields omitted */ }

View to select an item among a list, supporting multiple columns for sorting.

Examples

// Provide a type for the table's columns
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
enum BasicColumn {
    Name,
    Count,
    Rate
}

// Define the item type
#[derive(Clone, Debug)]
struct Foo {
    name: String,
    count: usize,
    rate: usize
}

impl TableViewItem<BasicColumn> for Foo {

    fn to_column(&self, column: BasicColumn) -> String {
        match column {
            BasicColumn::Name => self.name.to_string(),
            BasicColumn::Count => format!("{}", self.count),
            BasicColumn::Rate => format!("{}", self.rate)
        }
    }

    fn cmp(&self, other: &Self, column: BasicColumn) -> Ordering where Self: Sized {
        match column {
            BasicColumn::Name => self.name.cmp(&other.name),
            BasicColumn::Count => self.count.cmp(&other.count),
            BasicColumn::Rate => self.rate.cmp(&other.rate)
        }
    }

}

// Configure the actual table
let table = TableView::<Foo, BasicColumn>::new()
                     .column(BasicColumn::Name, "Name", |c| c.width(20))
                     .column(BasicColumn::Count, "Count", |c| c.align(HAlign::Center))
                     .column(BasicColumn::Rate, "Rate", |c| {
                         c.ordering(Ordering::Greater).align(HAlign::Right).width(20)
                     })
                     .default_column(BasicColumn::Name);

Methods

impl<T: TableViewItem<H>, H: Eq + Hash + Copy + Clone + 'static> TableView<T, H>
[src]

Creates a new empty TableView without any columns.

A TableView should be accompanied by a enum of type H representing the table columns.

Adds a column for the specified table colum from type H along with a title for its visual display.

The provided callback can be used to further configure the created TableColumn.

Sets the initially active column of the table.

Sorts the table in the passed in order based on the values from the specified table column from type H .

Disables this view.

A disabled view cannot be selected.

Re-enables this view.

Enable or disable this view.

Returns true if this view is enabled.

Sets a callback to be used when a column is sorted.

Sets a callback to be used when a column is sorted.

Chainable variant.

Sets a callback to be used when <Enter> is pressed while an item is selected.

Both the currently selected row and the index of the corresponding item within the underlying storage vector will be given to the callback.

Sets a callback to be used when <Enter> is pressed while an item is selected.

Both the currently selected row and the index of the corresponding item within the underlying storage vector will be given to the callback.

Chainable variant.

Sets a callback to be used when an item is selected.

Both the currently selected row and the index of the corresponding item within the underlying storage vector will be given to the callback.

Sets a callback to be used when an item is selected.

Both the currently selected row and the index of the corresponding item within the underlying storage vector will be given to the callback.

Chainable variant.

Removes all items from this view.

Returns the number of items in this table.

Returns true if this table has no item.

Returns the index of the currently selected table row.

Selects the row at the specified index.

Selects the row at the specified index.

Chainable variant.

Sets the contained items of the table.

The order of the items will be preserved even when the table is sorted.

Sets the contained items of the table.

The order of the items will be preserved even when the table is sorted.

Chainable variant.

Returns a immmutable reference to the item at the specified index within the underlying storage vector.

Returns a mutable reference to the item at the specified index within the underlying storage vector.

Returns the index of the currently selected item within the underlying storage vector.

Selects the item at the specified index within the underlying storage vector.

Selects the item at the specified index within the underlying storage vector.

Chainable variant.

Inserts a new item into the table.

Sort order is preserved and the item will be inserted accordingly.

Removes the item at the specified index within the underlying storage vector and returns it.

Removes all items from the underlying storage and returns them.

Trait Implementations

impl<T: TableViewItem<H> + 'static, H: Eq + Hash + Copy + Clone + 'static> View for TableView<T, H>
[src]

Draws the view with the given printer (includes bounds) and focus.

Called once the size for this view has been decided, Read more

This view is offered focus. Will it take it? Read more

Called when a key was pressed. Read more

Returns the minimum size the view requires with the given restrictions. Read more

Returns true if the view content changed since last layout phase. Read more

Finds the view identified by the given selector. Read more

Moves the focus to the view identified by the given selector. Read more