1use {
2 cursive::{view::*, views::*, *},
3 cursive_tree::*,
4};
5
6fn main() {
9 let mut cursive = Cursive::default();
10
11 let mut tree = SimpleTreeBackend::tree_view(());
12
13 tree.model.add_root(NodeKind::Leaf, (), "Hello".into());
16 tree.model.add_root(NodeKind::Branch, (), "World".into());
17
18 let world = tree.model.at_path_mut([1].into()).unwrap();
22 for i in 0..10 {
23 world.add_child(NodeKind::Leaf, (), format!("Child #{}", i + 1).into());
24 }
25 world.expand_branch(()).unwrap();
26
27 let mut gc = 0;
31 for c in 4..10 {
32 let child = tree.model.at_path_mut([1, c].into()).unwrap();
33 child.kind = NodeKind::Branch;
34 for _ in 0..10 {
35 child.add_child(NodeKind::Leaf, (), format!("Grandchild #{}", gc + 1).into());
36 gc += 1;
37 }
38 }
39
40 cursive.add_fullscreen_layer(Panel::new(tree.scrollable()));
41 cursive.add_global_callback('q', |cursive| cursive.quit());
42
43 cursive.run();
44}