protected override TreeViewItem BuildRoot() { var id = 1; var root = new TreeViewItem { id = id++, depth = -1, displayName = "Root", children = new List <TreeViewItem>() }; m_UserQueries = new SearchQueryCategoryTreeViewItem(this, () => searchView.SaveUserSearchQuery(), new GUIContent(userQuery, null, userTooltip)); foreach (var searchQuery in SearchQuery.userQueries) { var userQueryNode = new SearchQueryUserTreeViewItem(this, searchQuery); m_UserQueries.AddChild(userQueryNode); } root.AddChild(m_UserQueries); m_ProjectQueries = new SearchQueryCategoryTreeViewItem(this, () => searchView.SaveProjectSearchQuery(), new GUIContent(projectQuery, null, projectTooltip)); foreach (var searchQueryAsset in SearchQueryAsset.savedQueries) { var projectQueryNode = new SearchQueryAssetTreeViewItem(this, searchQueryAsset); m_ProjectQueries.AddChild(projectQueryNode); } root.AddChild(m_ProjectQueries); return(root); }