pub struct SimpleTreeBackend;Expand description
Simple tree view backend.
Nodes can only be populated manually.
Implementations§
Source§impl SimpleTreeBackend
impl SimpleTreeBackend
Sourcepub fn tree_view() -> TreeView<Self>
pub fn tree_view() -> TreeView<Self>
Create a tree view with this backend.
Examples found in repository?
examples/simple.rs (line 11)
8fn main() -> Result<(), ()> {
9 let mut cursive = default();
10
11 let mut tree = SimpleTreeBackend::tree_view();
12
13 // A few roots
14
15 tree.model.add_root(NodeKind::Leaf, (), "Hello");
16 tree.model.add_root(NodeKind::Branch, (), "World");
17
18 // Add 10 children to "World"
19
20 let world = tree.model.at_path_mut([1].into()).expect("at_path_mut");
21 for i in 0..10 {
22 world.add_child(NodeKind::Leaf, (), format!("Child #{}", i + 1));
23 }
24
25 // Add 10 grandchildren each to "Child #5" -> "Child #10"
26 // Note that we change them to branch in order to support having children
27
28 let mut gc = 0;
29 for c in 4..10 {
30 let child = tree.model.at_path_mut([1, c].into()).expect("at_path_mut");
31 child.kind = NodeKind::Branch;
32 for _ in 0..10 {
33 child.add_child(NodeKind::Leaf, (), format!("Grandchild #{}", gc + 1));
34 gc += 1;
35 }
36 }
37
38 // Expand all nodes
39
40 tree.model.expand(None)?;
41
42 cursive.add_fullscreen_layer(Panel::new(tree.scrollable()));
43 cursive.add_global_callback('q', |cursive| cursive.quit());
44
45 cursive.run();
46
47 Ok(())
48}Sourcepub fn tree_model() -> TreeModel<Self>
pub fn tree_model() -> TreeModel<Self>
Create a tree model with this backend.
Trait Implementations§
Source§impl TreeBackend for SimpleTreeBackend
impl TreeBackend for SimpleTreeBackend
Source§fn tree_model(context: Self::Context) -> TreeModel<Self>
fn tree_model(context: Self::Context) -> TreeModel<Self>
Create a tree model with this backend.
Source§fn symbol(node: &Node<Self>, context: Self::Context) -> Symbol<'_>
fn symbol(node: &Node<Self>, context: Self::Context) -> Symbol<'_>
Get a node’s symbol. Read more
Source§fn roots(context: Self::Context) -> Result<NodeList<Self>, Self::Error>
fn roots(context: Self::Context) -> Result<NodeList<Self>, Self::Error>
Get the root nodes. Read more
Source§fn populate(
node: &mut Node<Self>,
context: Self::Context,
) -> Result<(), Self::Error>
fn populate( node: &mut Node<Self>, context: Self::Context, ) -> Result<(), Self::Error>
Populate a node’s children. Read more
Source§fn data(
node: &mut Node<Self>,
context: Self::Context,
) -> Result<Option<(Self::Data, bool)>, Self::Error>
fn data( node: &mut Node<Self>, context: Self::Context, ) -> Result<Option<(Self::Data, bool)>, Self::Error>
Get a node’s data. Read more
Source§fn handle_selection_changed(cursive: &mut Cursive, context: Self::Context)
fn handle_selection_changed(cursive: &mut Cursive, context: Self::Context)
Auto Trait Implementations§
impl Freeze for SimpleTreeBackend
impl RefUnwindSafe for SimpleTreeBackend
impl Send for SimpleTreeBackend
impl Sync for SimpleTreeBackend
impl Unpin for SimpleTreeBackend
impl UnsafeUnpin for SimpleTreeBackend
impl UnwindSafe for SimpleTreeBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more