private TreeNode GetTreeNode(AbstractFieldNode node) { TreeNode treeNode; m_treeNodeLookup.TryGetValue(node, out treeNode); return(treeNode); }
private void SetupNode(AbstractFieldNode node) { node.OnChildAdded += OnNodeAdded; node.OnChanged += OnNodeChanged; node.OnChildRemoved += OnNodeRemoved; m_winForm.AddNode(node); int childCount = node.Count; for (int i = 0; i < childCount; i++) { SetupNode(node.GetChild(i)); } }
public EditorInstance(string fileName, MainForm winForm) { using (FileStream fstream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { using (BinaryReader reader = new BinaryReader(fstream)) { m_root = AbstractFieldNode.Deserialize(reader) as RootNode; } } m_winForm = winForm; Setup(); }
public void NodeChanged(AbstractFieldNode node) { TreeNode treeNode = GetTreeNode(node); if (treeNode == null) { return; } treeNode.Text = node.ToString(); for (int i = 0; i < node.Count; i++) { NodeChanged(node.GetChild(i)); } }
public void AddNode(AbstractFieldNode node) { AbstractFieldNode parent = node.Parent; if (parent == null) { if (m_nodeLookup.Count != 0) { throw new InvalidOperationException("Cannot add a root node, a root already exists."); } LinkedList <MenuItem> menuItems = new LinkedList <MenuItem>(); node.GetMenuCommands(menuItems); TreeNode treeNode = new TreeNode(node.ToString()); treeNode.ContextMenu = new ContextMenu(menuItems.ToArray()); treeNode.Tag = node; m_treeView.Nodes.Add(treeNode); m_treeNodeLookup.Add(node, treeNode); m_nodeLookup.Add(treeNode, node); } else { LinkedList <MenuItem> menuItems = new LinkedList <MenuItem>(); node.GetMenuCommands(menuItems); TreeNode treeNode = new TreeNode(node.ToString()); treeNode.ContextMenu = new ContextMenu(menuItems.ToArray()); treeNode.Tag = node; TreeNode parentTreeNode = GetTreeNode(parent); parentTreeNode.Nodes.Add(treeNode); parentTreeNode.Expand(); m_treeNodeLookup.Add(node, treeNode); m_nodeLookup.Add(treeNode, node); } }
private void OnNodeRemoved(AbstractFieldNode parent, AbstractFieldNode child) { m_winForm.ChildNodeRemoved(parent, child); }
private void OnNodeAdded(AbstractFieldNode parent, AbstractFieldNode child) { SetupNode(child); }
private void OnNodeChanged(AbstractFieldNode node) { m_winForm.NodeChanged(node); }
public void ChildNodeRemoved(AbstractFieldNode parent, AbstractFieldNode child) { TreeNode childTreeNode = GetTreeNode(child); childTreeNode.Remove(); }