示例#1
0
 /// <summary>
 /// this is the function that maps the directories from the computer recursively
 /// </summary>
 /// <param name="directory"></param>
 /// <param name="parentNode"></param>
 /// <param name="tree"></param>
 /// <param name="names"></param>
 /// <returns></returns>
 public TreeView getDirectories(DirectoryInfo directory, string parentNode, TreeView tree, ref List<string> names)
 {
     // TODO : Maybe the name of the treeviewitems should be the fullpath? that ensures its unique and we could later
     // use the names (full paths) in order to find the file quickly for TFS stuff
     // FIXED : have to pass the name of the parent node instead of using directory.Name because of the unique naming of the tree
     // elements. by passing the unique name we can find the correct parent node
     TreeViewItem parent = tree.FindName(parentNode) as TreeViewItem;
     // gets down to last directory
     DirectoryInfo[] dir = directory.GetDirectories();
     if (dir.Length > 0)
     {
         foreach (DirectoryInfo subDir in dir)
         {
             // im just skipping over the git stuff for now. we can figure out how to deal with it later
             if (!subDir.Name.Equals(".git"))
             {
                 string header = subDir.Name;
                 string name = header.Split('.')[0];
                 // passes the name to a function that addes numbers to the end of the name to
                 // ensure the name is unique
                 name = uniqueName(name, ref names);
                 TreeViewItem item = new TreeViewItem() { Header = header, Name = name };
                 parent.Items.Add(item);
                 item.RegisterName(name, item);
                 names.Add(name);
                 getDirectories(subDir,name, tree, ref names);
             }
         }
     }
     //map files to current level of tree
     FileInfo[] files = directory.GetFiles();
     if (files.Length > 0)
     {
         foreach (FileInfo file in files)
         {
             string header = file.Name;
             // this is more git stuff that we dont need to put in here but we might need to add more error stuff to catch weird
             // names and such
             if(header.Contains("git"))
             {
                 header = header.Replace(".", "NotNeeded");
             }
             string name = header.Split('.')[0];
             // passes the name to a function that addes numbers to the end of the name to
             // ensure the name is unique
             name = uniqueName(name, ref names);
             TreeViewItem item = new TreeViewItem() { Header = header, Name = name };
             parent.Items.Add(item);
             item.RegisterName(name, item);
             names.Add(name);
         }
     }
     return tree;
 }
 private void addDataToTree(TreeView treeView1, List<dynamic> actualList, List<dynamic> resultList, DBModule.TypeOfDepth depth, String value, int count)
 {
     // if (sendQuery != null)
     // {
     switch (depth)
     {
         case DBModule.TypeOfDepth.Section:
             {
                 int i = count;
                 foreach (DBModule.Section sectionName in resultList)
                 {
                     if (!isAdded(actualList, sectionName, depth))
                     {
                         TreeViewItem mainItem = new TreeViewItem() { Header = "Section: " + sectionName.SectionName, Name = "item" + i };
                         treeView1.Items.Add(mainItem);
                         mainItem.RegisterName("regName" + i, mainItem);
                         i++;
                     }
                 }
                 break;
             }
         case DBModule.TypeOfDepth.ForumThread:
             {
                 int i = count;
                 
                 foreach (ForumThread forumThread in resultList)
                 {
                     if (!isAdded(actualList, forumThread, depth))
                     {
                         if (!dict.ContainsKey(forumThread.SectionName))
                         {
                             TreeViewItem mainItem = new TreeViewItem() { Header = "Section: " + forumThread.SectionName, Name = "item" + i };
                             treeView1.Items.Add(mainItem);
                             dict.Add(forumThread.SectionName, "regName" + i);
                             mainItem.RegisterName("regName" + i, mainItem);
                             TreeViewItem subItem = new TreeViewItem() { Header = "Thread: " + forumThread.ThreadName, Name = "subItem" + i };
                             mainItem.Items.Add(subItem);
                             subItem.RegisterName("regSubName" + i, subItem);
                         }
                         else
                         {
                             TreeViewItem searchItem = treeView1.FindName(dict[forumThread.SectionName]) as TreeViewItem;
                             TreeViewItem subItem = new TreeViewItem() { Header = "Thread: " + forumThread.ThreadName, Name = "subItem" + i };
                             searchItem.Items.Add(subItem);
                             subItem.RegisterName("regSubName" + i, subItem);
                         }
                         i++;
                     }
                 }
                 break;
             }
         case DBModule.TypeOfDepth.Post:
             {
                 int i = count;
                 
                 foreach (Post post in resultList)
                 {
                     if (!isAdded(actualList, post, depth))
                     {
                         if (!dictSections.ContainsKey(post.SectionTitle))
                         {
                             TreeViewItem mainItem = new TreeViewItem() { Header = "Section: " + post.SectionTitle, Name = "item" + i };
                             treeView1.Items.Add(mainItem);
                             dictSections.Add(post.SectionTitle, "regName" + i);
                             mainItem.RegisterName("regName" + i, mainItem);
                             if (!dictThreads.ContainsKey(post.TopicTitle))
                             {
                                 TreeViewItem subItem = new TreeViewItem() { Header = "Thread: " + post.TopicTitle, Name = "subItem" + i };
                                 mainItem.Items.Add(subItem);
                                 dictThreads.Add(post.TopicTitle, "regSubName" + i);
                                 subItem.RegisterName("regSubName" + i, subItem);
                                 TreeViewItem postItem = new TreeViewItem() { Header = "Post: " + ChangeName(post.Content), Name = "postItem" + i };
                                 subItem.Items.Add(postItem);
                                 postItem.RegisterName("regPostName" + i, postItem);
                             }
                             else
                             {
                                 TreeViewItem searchThreadItem = treeView1.FindName(dictThreads[post.TopicTitle]) as TreeViewItem;
                                 TreeViewItem postItem = new TreeViewItem() { Header = "Post: " + ChangeName(post.Content), Name = "postItem" + i };
                                 searchThreadItem.Items.Add(postItem);
                                 postItem.RegisterName("regPostName" + i, postItem);
                             }
                         }
                         else
                         {
                             TreeViewItem searchItem = treeView1.FindName(dictSections[post.SectionTitle]) as TreeViewItem;
                             if (!dictThreads.ContainsKey(post.TopicTitle))
                             {
                                 TreeViewItem subItem = new TreeViewItem() { Header = "Thread: " + post.TopicTitle, Name = "subItem" + i };
                                 searchItem.Items.Add(subItem);
                                 subItem.RegisterName("regSubName" + i, subItem);
                                 TreeViewItem postItem = new TreeViewItem() { Header = "Post: " + ChangeName(post.Content), Name = "postItem" + i };
                                 subItem.Items.Add(postItem);
                                 postItem.RegisterName("regPostName" + i, postItem);
                             }
                             else
                             {
                                 TreeViewItem searchThreadItem = treeView1.FindName(dictThreads[post.TopicTitle]) as TreeViewItem;
                                 TreeViewItem postItem = new TreeViewItem() { Header = "Post: " + ChangeName(post.Content), Name = "postItem" + i };
                                 searchThreadItem.Items.Add(postItem);
                                 postItem.RegisterName("regPostName" + i, postItem);
                             }
                         }
                         i++;
                     }
                 }
                 break;
             }
     }
 }