Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
 public void Add(TreeNode node)
 {
     Insert(_children.Count, node);
 }
Exemplo n.º 4
0
 public void Insert(int index, TreeNode node)
 {
     node._parent = this;
     _children.Insert(index, node);
     UpdateChildren();
 }
Exemplo n.º 5
0
 public void SetSelection(TreeNode node)
 {
     _selectionChanger.Begin(_selectedNodes);
     if (node != null)
         _selectionChanger.SelectOnly(node);
     else
         _selectionChanger.UnselectAll();
     _selectionChanger.End();
 }
Exemplo n.º 6
0
        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;
        }
Exemplo n.º 7
0
        public void Remove(TreeNode node)
        {
            if (node.Parent != null) {
                node.Parent.Remove(node);
                return;
            }

            _rootNodes.Remove(node);
            node.RemoveFromTree(this);
            InvalidateHierarchy();
        }
Exemplo n.º 8
0
 public TreeNode NodeAt(float y)
 {
     _foundNode = null;
     NodeAt(_rootNodes, y, Height);
     return _foundNode;
 }
Exemplo n.º 9
0
 public void Insert(int index, TreeNode node)
 {
     Remove(node);
     node.Parent = null;
     _rootNodes.Insert(index, node);
     node.AddToTree(this);
     InvalidateHierarchy();
 }
Exemplo n.º 10
0
        public void AddSelection(TreeNode node)
        {
            if (node == null)
                return;

            _selectionChanger.Begin(_selectedNodes);
            _selectionChanger.Select(node);
            _selectionChanger.End();
        }
Exemplo n.º 11
0
 public void Add(TreeNode node)
 {
     Insert(_rootNodes.Count, node);
 }