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]); } } }
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); } } }