示例#1
0
        private void AddNode(object obj)
        {
            TreeNode treeNode = (TreeNode)obj;

            if (treeViewDir.InvokeRequired)
            {
                AddNodeDelegate d = AddNode;
                treeViewDir.Invoke(d, obj);
            }
            else
            {
                selectedTreeNode.Nodes.Clear();
                foreach (TreeNode node in treeNode.Nodes)
                {
                    string[] info = node.Tag.ToString().Split(',');
                    if (info[0] != "file")
                    {
                        selectedTreeNode.Nodes.Add(node);
                        node.ImageIndex = 0;
                    }
                }
                selectedTreeNode.Expand();
                //treeNode.Expand();
            }
        }
示例#2
0
 public Form1()
 {
     InitializeComponent();
     AND = new AddNodeDelegate(AddNode);
     SND = new SearchNodeDelegate(SearchNode);
     ESD = new EndSearchDelegate(EndSearch);
     CFD = new CurrentFileDelegate(OutputCurrentFile);
 }
示例#3
0
 public void AddNode(string text)
 {
     // InvokeRequired required compares the thread ID of the
     // calling thread to the thread ID of the creating thread.
     // If these threads are different, it returns true.
     if (treeView1.InvokeRequired)
     {
         AddNodeDelegate d = new AddNodeDelegate(AddNode);
         this.Invoke(d, new object[] { text });
     }
     else
     {
         root = treeView1.Nodes.Add(text);
     }
 }
示例#4
0
        private void Clean_Results(TreeNode source, string extension)
        {
            if (_stopThread)
            {
                return;
            }
            AddNodeDelegate remove = new AddNodeDelegate(() => { return; });

            foreach (TreeNode node in source.Nodes)
            {
                if (!node.Text.Contains(extension) && node.Nodes.Count == 0)
                {
                    remove += () => Delete_TreeViewNode(node.Parent, node);
                }
                Clean_Results(node, extension);
            }
            _results.Invoke(remove);
        }
 protected void AddNode(TreeNode parent, TreeNode node)
 {
     if (InvokeRequired)
     {
         AddNodeDelegate cb = new AddNodeDelegate(AddNode);
         Invoke(cb, parent, node);
     }
     else
     {
         if (parent == null)
         {
             treeView.Nodes.Add(node);
         }
         else
         {
             parent.Nodes.Add(node);
         }
     }
 }
示例#6
0
        private void AddNode(TreeView tree, int depth, string message, string category)
        {
            if (tree.InvokeRequired)
            {
                //Not on the UI thread so post the request
                AddNodeDelegate del = new AddNodeDelegate(AddNode);
                tree.FindForm().BeginInvoke(del, new object[] { tree, depth, message, category });
            }
            else
            {
                try
                {
                    m_Owner.BeginUpdate();

                    //Move to the correct node collection given the current node and the depth
                    TreeNodeCollection coll = MoveToDepth(depth);

                    //Add the new message
                    TreeNode child  = coll.Add(message);
                    TreeNode parent = child.Parent;
                    while (parent != null)
                    {
                        parent.Expand();
                        parent = parent.Parent;
                    }
                    ;

                    //Set the category image as needed
                    int nIdx = -1;
                    if (String.IsNullOrEmpty(category))
                    {
                        nIdx = GetCategory(category);
                    }
                    child.ImageIndex = child.SelectedImageIndex = nIdx;
                } finally
                {
                    m_Owner.EndUpdate();
                };
            };
        }
示例#7
0
        private int Search(TreeNode source, DirectoryInfo current, string begin, string end, string extension)
        {
            if (_stopThread)
            {
                return(0);
            }
            int filesNumber = 0;

            foreach (FileInfo file in current.GetFiles())
            {
                bool flag = true;
                _filesNumber++;
                ChangeCurrentFileDelegate change = new ChangeCurrentFileDelegate(() => Change_Current_File(file.FullName));
                _curFile.Invoke(change);
                string filename = file.Name;
                if (file.Extension != extension)
                {
                    flag = false;
                }
                else
                {
                    if (!begin.IsEmpty())
                    {
                        for (var index = 0; index < begin.Length; index++)
                        {
                            if (filename[index] != begin[index])
                            {
                                flag = false;
                            }
                        }
                    }
                    if (!end.IsEmpty())
                    {
                        string[] splitter = { "." };
                        string   name     = filename.Split(splitter, StringSplitOptions.None).First();
                        if (name.Length >= end.Length)
                        {
                            for (var index = 0; index < end.Length; index++)
                            {
                                if (name[name.Length - end.Length + index] != end[index])
                                {
                                    flag = false;
                                }
                            }
                        }
                        else
                        {
                            flag = false;
                        }
                    }
                    if (flag)
                    {
                        if (!_textKeyWords.Text.IsEmpty())
                        {
                            string   text     = Read_TextFile(file.FullName);
                            string[] splitter = { " " };
                            foreach (var word in _textKeyWords.Text.Split(splitter, StringSplitOptions.None))
                            {
                                if (!text.Contains(word))
                                {
                                    flag = false;
                                }
                            }
                        }
                    }
                }
                if (flag)
                {
                    filesNumber++;
                    AddNodeDelegate add = new AddNodeDelegate(() => Add_New_TreeViewNode(source, new TreeNode(file.FullName)));
                    _results.Invoke(add);
                }
            }
            foreach (DirectoryInfo directory in current.GetDirectories())
            {
                TreeNode        newNode = new TreeNode(directory.FullName);
                AddNodeDelegate add     = new AddNodeDelegate(() => Add_New_TreeViewNode(source, newNode));
                _results.Invoke(add);
                filesNumber += Search(newNode, directory, begin, end, extension);

                if (filesNumber == 0)
                {
                    AddNodeDelegate remove = new AddNodeDelegate(() => Delete_TreeViewNode(source, newNode));
                    _results.Invoke(remove);
                }
                if (_stopThread)
                {
                    return(0);
                }
            }

            return(filesNumber);
        }