예제 #1
0
 public SolutionRootNode(SolutionManager manager, SolutionInfo si, FiledropsDirectory di, Binding showext, FolderTreeNodeFilter filter = null)
     : base(di, showext, filter)
 {
     this.Solution = si;
     this.manager = manager;
     this.Tag = "Solution";
 }
예제 #2
0
 public override FolderTreeNode createFolderNode(FiledropsDirectory dir, FolderTreeNodeFilter filter, bool recursive = true)
 {
     if (filter == null)
         return new SolutionProjectRootNode(manager, this.Solution.GetSolutionProjectWithDirectory(dir), dir, this.ShowExtBinding, this.filter);
     else
         return new SolutionProjectRootNode(manager, this.Solution.GetSolutionProjectWithDirectory(dir), dir, this.ShowExtBinding, filter);
 }
예제 #3
0
 public SolutionProjectRootNode(SolutionManager manager, SolutionProjectInfo pi, FiledropsDirectory di, Binding showext, FolderTreeNodeFilter filter)
     : base(manager, pi, di, showext)
 {
     this.filter = filter;
     this.pi = pi;
     this.manager = manager;
 }
예제 #4
0
 public override FolderTreeNode createFolderNode(FiledropsDirectory dir, FolderTreeNodeFilter filter, bool recursive = true)
 {
     if (filter == null)
         return new ProjectFolderNode(pi, dir, this.ShowExtBinding, this.filter);
     else
         return new ProjectFolderNode(pi, dir, this.ShowExtBinding, filter);
 }
예제 #5
0
 public ProjectFolderNode(ProjectInfo pi, FiledropsDirectory di, Binding showext, FolderTreeNodeFilter filter = null)
     : base(di, showext, filter)
 {
     this.pi = pi;
     //this.ContextMenuOpening
     //pi.Manager
 }
예제 #6
0
        public override void buildFolderRoot(FolderTreeNode node)
        {
            List<FiledropsFileSystemEntry> entries = (node.Entry as FiledropsDirectory).GetEntries();
            SolutionInfo solution = Manager.GetSolutionWithPath((node.Entry as FiledropsDirectory).FullName);
            if (solution == null) return;

            foreach (string projectdir in solution.GetProjectNames())
            {
                foreach (FiledropsFileSystemEntry entry in entries)
                {
                    if (entry.Name == projectdir && entry.EntryType == FileSystemEntryType.Folder)
                    {
                        if (solution.projects[entry.Name] != null)
                        {
                            entry.FileSystem = solution.projects[entry.Name].FileSystem;
                        }
                        // Filter: don't show any files; show only subdirectories in AcceptedDirs
                        FolderTreeNodeFilter filter = new FolderTreeNodeFilter(new string[] { }, accepteddirs.Keys.ToArray());
                        FolderTreeNode item = node.createFolderNode(entry as FiledropsDirectory, filter, false);
                        //item.Tag = "TopFolder";
                        item.FontWeight = FontWeights.Normal;
                        buildProjectFolder(item);
                        node.Items.Add(item);
                    }
                }
            }
        }
예제 #7
0
        public void buildProjectFolder(FolderTreeNode node)
        {
            List<FiledropsFileSystemEntry> entries = node.filter.getAllowedDirectoryContents(node.Entry as FiledropsDirectory, FileSystemEntryType.Folder);

            // double loop: for sorting the folders as in the list of accepted directories.
            foreach (string accepted in accepteddirs.Keys)
            {
                foreach (FiledropsFileSystemEntry entry in entries)
                {
                    if (entry.Name == accepted && entry.EntryType == FileSystemEntryType.Folder)
                    {
                        // Filter: show only files with an extension in Filters[i]; show all subdirectories
                        FolderTreeNodeFilter filter = new FolderTreeNodeFilter(new string[] { accepteddirs[entry.Name] });
                        FolderTreeNode item = node.createFolderNode(entry as FiledropsDirectory, filter);
                        item.Tag = "TopFolder";
                        item.FontWeight = FontWeights.Normal;
                        node.Items.Add(item);
                    }
                }
            }
        }
예제 #8
0
        public void addProjectToSolutionAndRename(FiledropsFile projectfile, SolutionInfo si)
        {
            SolutionRootNode solutionsRoot = null;
            foreach (ISolutionNode n in this.Items)
            {
                if (n.getSolution().Solutionfile.FullName.Equals(si.Solutionfile.FullName))
                {
                    solutionsRoot = n as SolutionRootNode;
                }
            }

            if (solutionsRoot != null)
            {
                FolderTreeNodeFilter filter = new FolderTreeNodeFilter(new string[] { }, accepteddirs.Keys.ToArray());
                FolderTreeNode item = solutionsRoot.createFolderNode(projectfile.Parent, filter, false);
                //item.Tag = "TopFolder";
                item.FontWeight = FontWeights.Normal;
                buildProjectFolder(item);
                solutionsRoot.Items.Add(item);
                item.RenameNode();
            }
        }
예제 #9
0
        public override void buildFolderRoot(FolderTreeNode node)
        {
            List<FiledropsFileSystemEntry> entries = (node.Entry as FiledropsDirectory).GetEntries();
            int i = 0;
            foreach (string accepted in AcceptedDirs)//this way top folders will be sorted like the accepted list
            {
                foreach (FiledropsFileSystemEntry entry in entries)
                {
                    if (entry.Name == accepted && entry.EntryType == FileSystemEntryType.Folder)
                    {

                        FolderTreeNodeFilter filter = new FolderTreeNodeFilter(new string[] { Filters[i] }, new string[] { });
                        FolderTreeNode item = node.createFolderNode(entry as FiledropsDirectory, filter);

                        item.Tag = "TopFolder";
                        item.FontWeight = FontWeights.Normal;
                        if (ShowRoot)
                            node.Items.Add(item);
                        else
                            this.Items.Add(item);
                    }
                }
                i++;
            }
        }