private TreeNode GetTreeNode(AbstractFieldNode node)
        {
            TreeNode treeNode;

            m_treeNodeLookup.TryGetValue(node, out treeNode);
            return(treeNode);
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #6
0
 private void OnNodeRemoved(AbstractFieldNode parent, AbstractFieldNode child)
 {
     m_winForm.ChildNodeRemoved(parent, child);
 }
Beispiel #7
0
 private void OnNodeAdded(AbstractFieldNode parent, AbstractFieldNode child)
 {
     SetupNode(child);
 }
Beispiel #8
0
 private void OnNodeChanged(AbstractFieldNode node)
 {
     m_winForm.NodeChanged(node);
 }
        public void ChildNodeRemoved(AbstractFieldNode parent, AbstractFieldNode child)
        {
            TreeNode childTreeNode = GetTreeNode(child);

            childTreeNode.Remove();
        }