public void RemoveChild(BeTreeNode node) { NodeChildren.Remove(node); FloorCount = 0; NodeParent = null; node.SetParent(null); }
public void AddChild(BeTreeNode node, IEditorControl parent) { NodeChildren.Add(node); node.NodeParent = this; node.FloorCount = FloorCount + 1; node.SetParent(parent); }
public static BeTreeNode CreateTree(NodeParam root, TreeNodeCanvas canvas, Dictionary <int, BeTreeNode> dict) { _canvas = canvas; _dict = dict; List <int> ids = new List <int>(dict.Keys); foreach (int id in ids) { dict[id].RemoveBTN(); } Queue <NodeParam> queue = new Queue <NodeParam>(); queue.Enqueue(root); BeTreeNode rootNode = null; while (queue.Count > 0) { NodeParam p = queue.Dequeue(); BeTreeNode pBtn = p.CreateBTN(); pBtn.DeployNodeEvent(); if (p.Parent == null) { rootNode = pBtn; rootNode.SetParent(canvas.NodePanels); } else { dict[p.Parent.NodeID].AddChild(pBtn, _canvas.NodePanels); } foreach (NodeParam child in p.ChildrenList) { queue.Enqueue(child); } } return(rootNode); }