Beispiel #1
0
        /// <summary>
        /// Create a new folderNode as a child node to a containernode (folder or project)
        /// </summary>
        /// <param name="project"></param>
        /// <param name="folderPath"></param>
        /// <returns></returns>
        internal static FolderNode CreateFolder(ProjectNode project, string folderPath, HierarchyNode containerNode)
        {
            FolderNode folderNode = project.CreateFolderNode(folderPath);

            containerNode.AddChild(folderNode);
            //Create Directory associated to this FolderNode
            folderNode.CreateDirectory();

            return(folderNode);
        }
        private static void AddNonMemberFolderItems(ProjectNode project, IEnumerable <string> folderList)
        {
            ErrorHelper.ThrowIsNull(folderList, "folderList");

            foreach (string folderKey in folderList)
            {
                HierarchyNode     parentNode    = project;
                string[]          folders       = folderKey.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
                NemerleFolderNode topFolderNode = null;
                foreach (string folder in folders)
                {
                    string   childNodeId = Path.Combine(parentNode.VirtualNodeName, folder);
                    FileInfo folderInfo  = new FileInfo(Path.Combine(project.ProjectFolder, childNodeId));
                    if ((folderInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                    {
                        break;
                    }

                    HierarchyNode childNode = parentNode.FindChild(childNodeId);
                    if (childNode == null)
                    {
                        if (topFolderNode == null)
                        {
                            topFolderNode = parentNode as NemerleFolderNode;
                            if (topFolderNode != null && (!topFolderNode.IsNonMemberItem) && topFolderNode.IsExpanded)
                            {
                                topFolderNode = null;
                            }
                        }

                        ProjectElement element = new ProjectElement(project, null, true);
                        childNode = project.CreateFolderNode(childNodeId, element);
                        parentNode.AddChild(childNode);
                    }

                    parentNode = childNode;
                }

                if (topFolderNode != null)
                {
                    topFolderNode.CollapseFolder();
                }
            }
        }