1 module widgets.tree;
2
3 import dlangui;
4
5 class TreeExample : HorizontalLayout
6 {
7 this(string ID)
8 {
9 super(ID);
10
11 TreeWidget tree = new TreeWidget("TREE1");
12 tree.layoutWidth(WRAP_CONTENT).layoutHeight(FILL_PARENT);
13 TreeItem tree1 = tree.items.newChild("group1", "Group 1"d, "document-open");
14 tree1.newChild("g1_1", "Group 1 item 1"d);
15 tree1.newChild("g1_2", "Group 1 item 2"d);
16 tree1.newChild("g1_3", "Group 1 item 3"d);
17 TreeItem tree2 = tree.items.newChild("group2", "Group 2"d, "document-save");
18 tree2.newChild("g2_1", "Group 2 item 1"d, "edit-copy");
19 tree2.newChild("g2_2", "Group 2 item 2"d, "edit-cut");
20 tree2.newChild("g2_3", "Group 2 item 3"d, "edit-paste");
21 tree2.newChild("g2_4", "Group 2 item 4"d);
22 TreeItem tree3 = tree.items.newChild("group3", "Group 3"d);
23 tree3.newChild("g3_1", "Group 3 item 1"d);
24 tree3.newChild("g3_2", "Group 3 item 2"d);
25 TreeItem tree32 = tree3.newChild("g3_3", "Group 3 item 3"d);
26 tree3.newChild("g3_4", "Group 3 item 4"d);
27 tree32.newChild("group3_2_1", "Group 3 item 2 subitem 1"d);
28 tree32.newChild("group3_2_2", "Group 3 item 2 subitem 2"d);
29 tree32.newChild("group3_2_3", "Group 3 item 2 subitem 3"d);
30 tree32.newChild("group3_2_4", "Group 3 item 2 subitem 4"d);
31 tree32.newChild("group3_2_5", "Group 3 item 2 subitem 5"d);
32 tree3.newChild("g3_5", "Group 3 item 5"d);
33 tree3.newChild("g3_6", "Group 3 item 6"d);
34
35 LinearLayout treeControlledPanel = new VerticalLayout();
36 layoutWidth = FILL_PARENT;
37 treeControlledPanel.layoutWidth = FILL_PARENT;
38 treeControlledPanel.layoutHeight = FILL_PARENT;
39 TextWidget treeItemLabel = new TextWidget("TREE_ITEM_DESC");
40 treeItemLabel.layoutWidth = FILL_PARENT;
41 treeItemLabel.layoutHeight = FILL_PARENT;
42 treeItemLabel.alignment = Align.Center;
43 treeItemLabel.text = "Sample text"d;
44 treeControlledPanel.addChild(treeItemLabel);
45 addChild(tree);
46 addChild(new ResizerWidget());
47 addChild(treeControlledPanel);
48
49 tree.selectionChange = delegate(TreeItems source, TreeItem selectedItem, bool activated) {
50 dstring label = "Selected item: "d ~ toUTF32(selectedItem.id) ~ (activated ? " selected + activated"d : " selected"d);
51 treeItemLabel.text = label;
52 };
53
54 tree.items.selectItem(tree.items.child(0));
55 }
56 }