protected override void InitializeCore() { ShowDebug = true; _stage = new Stage(Context.GraphicsDevice); Context.Input.Processor = _stage; Skin skin = new Skin(Context.GraphicsDevice, "Data/uiskin.json"); Table table = new Table(); table.SetFillParent(true); _stage.AddActor(table); Tree tree = new Tree(skin); TreeNode node1 = new TreeNode(new TextButton("moo1", skin)); TreeNode node2 = new TreeNode(new TextButton("moo2", skin)); TreeNode node3 = new TreeNode(new TextButton("moo3", skin)); TreeNode node4 = new TreeNode(new TextButton("moo4", skin)); TreeNode node5 = new TreeNode(new TextButton("moo5", skin)); tree.Add(node1); tree.Add(node2); node2.Add(node3); node3.Add(node4); tree.Add(node5); Label label = new Label("", skin, "default"); tree.SelectionChanged += (sender, e) => { if (e.AddedItems.Count == 0) return; StringBuilder txt = new StringBuilder(); foreach (TreeNode node in e.AddedItems) { TextButton button = node.Actor as TextButton; txt.Append(button.Text + ", "); } label.Text = txt.ToString(); label.Invalidate(); }; (node5.Actor as Button).Clicked += (sender, e) => { tree.Remove(node4); }; //node5.Actor.AddListener(new DispatchClickListener() { // OnClicked = (ev, x, y) => { tree.Remove(node4); } //}); table.Add(tree).Configure.Fill().Expand(); table.Row(); table.Add(label).Configure.Fill().Expand(); //Debugger.Launch(); }
public void Remove(TreeNode node) { _children.Remove(node); if (!_expanded) return; Tree tree = Tree; if (tree == null) return; node.RemoveFromTree(tree); if (_children.Count == 0) _expanded = false; }
public void Add(TreeNode node) { Insert(_children.Count, node); }
public void Insert(int index, TreeNode node) { node._parent = this; _children.Insert(index, node); UpdateChildren(); }
public void SetSelection(TreeNode node) { _selectionChanger.Begin(_selectedNodes); if (node != null) _selectionChanger.SelectOnly(node); else _selectionChanger.UnselectAll(); _selectionChanger.End(); }
private float NodeAt(List<TreeNode> nodes, float y, float rowY) { foreach (TreeNode node in nodes) { if (y >= rowY - node.Height - YSpacing && y < rowY) { _foundNode = node; return -1; } rowY -= node.Height + YSpacing; if (node.IsExpanded) { rowY = NodeAt(node.Children, y, rowY); if (rowY == -1) return -1; } } return rowY; }
public void Remove(TreeNode node) { if (node.Parent != null) { node.Parent.Remove(node); return; } _rootNodes.Remove(node); node.RemoveFromTree(this); InvalidateHierarchy(); }
public TreeNode NodeAt(float y) { _foundNode = null; NodeAt(_rootNodes, y, Height); return _foundNode; }
public void Insert(int index, TreeNode node) { Remove(node); node.Parent = null; _rootNodes.Insert(index, node); node.AddToTree(this); InvalidateHierarchy(); }
public void AddSelection(TreeNode node) { if (node == null) return; _selectionChanger.Begin(_selectedNodes); _selectionChanger.Select(node); _selectionChanger.End(); }
public void Add(TreeNode node) { Insert(_rootNodes.Count, node); }