Beispiel #1
0
 public void Add(TreeNode treeNode)
 {
     if (treeNode.IsTerminal)
     {
         if (treeNode.IsVariable)
         {
             _variables.Add(treeNode);
         }
         else
         {
             _constants.Add(treeNode);
         }
         _terminals.Add(treeNode);
     }
     else
     {
         _nonTerminals.Add(treeNode);
     }
     _any.Add(treeNode);
 }
Beispiel #2
0
        protected override TreeNode CreateTreeNode(string path, string label, int level, bool isFolder, bool isActive, bool isHidden, bool isCollapsed, GitBranchTreeData?treeData)
        {
            var node = new TreeNode {
                Path            = path,
                Label           = label,
                Level           = level,
                IsFolder        = isFolder,
                IsActive        = isActive,
                IsHidden        = isHidden,
                IsCollapsed     = isCollapsed,
                TreeIsCheckable = IsCheckable
            };

            if (isFolder)
            {
                folders.Add(node.Path, node);
            }

            return(node);
        }
Beispiel #3
0
 protected override void AddCheckedNode(TreeNode node)
 {
     checkedFileNodes.Add(((ITreeNode)node).Path, node);
 }
Beispiel #4
0
        public void Load(IEnumerable <ITreeData> data, string title)
        {
            var    collapsedFoldersEnumerable = folders.Where(pair => pair.Value.IsCollapsed).Select(pair => pair.Key);
            var    collapsedFolders           = new HashSet <string>(collapsedFoldersEnumerable);
            string selectedNodeName           = null;

            if (SelectedNode != null)
            {
                selectedNodeName = SelectedNode.Name;
                SelectedNode     = null;
            }

            folders.Clear();
            nodes.Clear();

            var titleNode = new TreeNode()
            {
                Name     = title,
                Label    = title,
                Level    = 0,
                IsFolder = true
            };

            SetNodeIcon(titleNode);
            nodes.Add(titleNode);

            var hideChildren           = false;
            var hideChildrenBelowLevel = 0;

            foreach (var d in data)
            {
                var parts = d.Name.Split('/');
                for (int i = 0; i < parts.Length; i++)
                {
                    var label         = parts[i];
                    var level         = i + 1;
                    var name          = String.Join("/", parts, 0, level);
                    var isFolder      = i < parts.Length - 1;
                    var alreadyExists = folders.ContainsKey(name);
                    if (!alreadyExists)
                    {
                        var isActive = false;
                        if (name == d.Name)
                        {
                            isActive = d.IsActive;
                        }

                        var node = new TreeNode
                        {
                            Name     = name,
                            IsActive = isActive,
                            Label    = label,
                            Level    = level,
                            IsFolder = isFolder
                        };

                        if (selectedNodeName != null && name == selectedNodeName)
                        {
                            SelectedNode = node;
                        }

                        if (node.IsActive)
                        {
                            activeNode = node;
                        }

                        if (hideChildren)
                        {
                            if (level <= hideChildrenBelowLevel)
                            {
                                hideChildren = false;
                            }
                            else
                            {
                                node.IsHidden = true;
                            }
                        }

                        SetNodeIcon(node);

                        nodes.Add(node);
                        if (isFolder)
                        {
                            if (collapsedFolders.Contains(name))
                            {
                                node.IsCollapsed = true;

                                if (!hideChildren)
                                {
                                    hideChildren           = true;
                                    hideChildrenBelowLevel = level;
                                }
                            }

                            folders.Add(name, node);
                        }
                    }
                }
            }
        }