/// <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(); } } }