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