コード例 #1
0
        public void TraverseDrawing(SearchTreeNode node)
        {
            if (node.Parent != null)
            {
                if (node.Parent.Activated)
                {
                    if (!node.HasChildren())
                    {
                        EditorGUI.indentLevel++;
                        if (GUILayout.Button(node.Title, EditorStyles.miniButton))
                        {
                            parentWindow.OnSearchedTaskClicked(node.NodeType);

                            parentWindow.Focus();
                            Close();
                            parentWindow.searchableTaskWindow = null;
                        }

                        EditorGUI.indentLevel--;
                    }
                    else
                    {
                        EditorGUI.indentLevel++;

                        node.Activated = EditorGUILayout.Foldout(node.Activated, node.Title, true);
                        if (node.Activated)
                        {
                            for (var i = 0; i < node.Children.Count; i++)
                            {
                                TraverseDrawing(node.Children[i]);
                            }
                        }

                        EditorGUI.indentLevel--;
                    }
                }
            }
            else
            {
                node.Activated = EditorGUILayout.Foldout(node.Activated, node.Title, true);

                for (var i = 0; i < node.Children.Count; i++)
                {
                    TraverseDrawing(node.Children[i]);
                }
            }
        }
コード例 #2
0
        public void TraverseSearching(SearchTreeNode root, string searchedWord)
        {
            if (!root.HasChildren() && root.Title.ToLower().Contains(searchedWord.ToLower())) // it is a leaf
            {
                if (GUILayout.Button(root.Title, EditorStyles.miniButton))
                {
                    Debug.Log("Creating a " + root.Title + " task node.");

                    parentWindow.OnSearchedTaskClicked(root.NodeType);

                    parentWindow.Focus();
                    Close();
                    parentWindow.searchableTaskWindow = null;
                }
            }
            else
            {
                foreach (var child in root.Children)
                {
                    TraverseSearching(child, searchedWord);
                }
            }
        }