private void Repopulate()
        {
            treeView1.Nodes.Clear();
            if (null == _viewContext)
            {
                return;
            }
            var newNodes = new List <TreeNode>();

            foreach (var group in _viewContext.ViewGroups)
            {
                var groupNode = new TreeNode(group.Label)
                {
                    Name = group.Id.Name, Tag = group
                };
                groupNode.SelectedImageIndex = groupNode.ImageIndex = indexImageFolder;
                foreach (var viewSpec in _viewContext.GetViewSpecList(group.Id).ViewSpecs)
                {
                    if (null == _viewContext.GetViewInfo(group, viewSpec))
                    {
                        continue;
                    }
                    var viewNode = new TreeNode(viewSpec.Name)
                    {
                        Name = viewSpec.Name
                    };
                    int imageIndex = _viewContext.GetImageIndex(viewSpec);
                    if (imageIndex >= 0)
                    {
                        imageIndex += indexFirstImage;
                    }
                    else
                    {
                        imageIndex = indexImageBlank;
                    }
                    if (imageIndex >= 0)
                    {
                        viewNode.SelectedImageIndex = viewNode.ImageIndex = imageIndex;
                    }
                    groupNode.Nodes.Add(viewNode);
                }
                newNodes.Add(groupNode);
            }
            treeView1.Nodes.AddRange(newNodes.ToArray());
            treeView1.ExpandAll();
            UpdateButtons();
        }