private void AddProjectFolders(VBProject project, TreeNode root, TreeNode[] components) { var documentNodes = components.Where(node => node.ImageKey == "OfficeDocument") .OrderBy(node => node.Text) .ToArray(); if (project.VBComponents.Cast<VBComponent>() .Any(component => component.Type == vbext_ComponentType.vbext_ct_Document)) { AddFolderNode(root, "Documents", "ClosedFolder", documentNodes); } var formsNodes = components.Where(node => node.ImageKey == "Form") .OrderBy(node => node.Text) .ToArray(); if (project.VBComponents.Cast<VBComponent>() .Any(component => component.Type == vbext_ComponentType.vbext_ct_MSForm)) { AddFolderNode(root, "Forms", "ClosedFolder", formsNodes); } var stdModulesNodes = components.Where(node => node.ImageKey == "StandardModule") .OrderBy(node => node.Text) .ToArray(); if (project.VBComponents.Cast<VBComponent>() .Any(component => component.Type == vbext_ComponentType.vbext_ct_StdModule)) { AddFolderNode(root, "Standard Modules", "ClosedFolder", stdModulesNodes); } var classModulesNodes = components.Where(node => node.ImageKey == "ClassModule") .OrderBy(node => node.Text) .ToArray(); if (project.VBComponents.Cast<VBComponent>() .Any(component => component.Type == vbext_ComponentType.vbext_ct_ClassModule || component.Type == vbext_ComponentType.vbext_ct_ActiveXDesigner)) { AddFolderNode(root, "Class Modules", "ClosedFolder", classModulesNodes); } }