Author: brett Date: Thu Jan 26 06:52:56 2012 New Revision: 1236051 URL: http://svn.apache.org/viewvc?rev=1236051&view=rev Log: [NPANDAY-534] ensure that projects within folders are traversed when needed
Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs?rev=1236051&r1=1236050&r2=1236051&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs Thu Jan 26 06:52:56 2012 @@ -573,6 +573,34 @@ namespace NPanday.VisualStudio.Addin return (String.Compare(project.Kind, FOLDER_KIND_GUID, true) == 0); } + public static IEnumerable<Project> GetAllProjects(Projects solutionProjects) + { + List<Project> projects = new List<Project>(); + foreach (Project project in solutionProjects) + { + addProject(projects, project); + } + return projects; + } + + private static void addProject(List<Project> projects, Project project) + { + if (IsFolder(project)) + { + foreach (ProjectItem item in project.ProjectItems) + { + if (item.SubProject != null) + { + addProject(projects, item.SubProject); + } + } + } + else + { + projects.Add(project); + } + } + void InsertKeyTag(string filePath, string key) { try @@ -621,7 +649,7 @@ namespace NPanday.VisualStudio.Addin { Solution2 solution = (Solution2)_applicationObject.Solution; string pomFilePath = string.Empty; - foreach (Project project in solution.Projects) + foreach (Project project in GetAllProjects(solution.Projects)) { string name = null; try @@ -729,7 +757,7 @@ namespace NPanday.VisualStudio.Addin this.wsRefWatcher = new List<WebServicesReferenceWatcher>(); this.svRefWatcher = new List<WebServicesReferenceWatcher>(); - foreach (Project project in solution.Projects) + foreach (Project project in GetAllProjects(solution.Projects)) { projectRefEventLoaded = true; @@ -1502,9 +1530,9 @@ namespace NPanday.VisualStudio.Addin try { if (_applicationObject.Solution != null) - { + { Solution2 solution = (Solution2)_applicationObject.Solution; - foreach (Project project in solution.Projects) + foreach (Project project in GetAllProjects(solution.Projects)) { if (!IsWebSite(project) && !IsFolder(project) && !IsCloudProject(project) && project.Object != null) { @@ -1900,7 +1928,7 @@ namespace NPanday.VisualStudio.Addin { Solution2 solution = (Solution2)_applicationObject.Solution; bool asked = false; - foreach (Project project in solution.Projects) + foreach (Project project in GetAllProjects(solution.Projects)) { if (!IsWebSite(project) && ProjectHasWebReferences(project)) { Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs?rev=1236051&r1=1236050&r2=1236051&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/MavenRunner.cs Thu Jan 26 06:52:56 2012 @@ -86,8 +86,6 @@ namespace NPanday.VisualStudio.Addin { Solution2 solution = (Solution2)dte2.Solution; - Projects projs = solution.Projects; - bool isFlatProject = true; string[] directoryPartial = solution.FullName.Split("\\".ToCharArray()); Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs?rev=1236051&r1=1236050&r2=1236051&view=diff ============================================================================== --- incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs (original) +++ incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs Thu Jan 26 06:52:56 2012 @@ -121,7 +121,8 @@ namespace NPanday.VisualStudio.Addin bool hasWebProjects = false, hasCloudProjects = false; Solution2 solution = (Solution2)applicationObject.Solution; - foreach (Project project in solution.Projects) + + foreach (Project project in Connect.GetAllProjects(solution.Projects)) { bool web = isWebProject(project); bool cloud = isCloudProject(project); @@ -428,7 +429,7 @@ namespace NPanday.VisualStudio.Addin { Solution2 solution = (Solution2)applicationObject.Solution; IList<IReferenceManager> refManagers = new List<IReferenceManager>(); - foreach (Project project in solution.Projects) + foreach (Project project in Connect.GetAllProjects(solution.Projects)) { if (!isWebProject(project) && !isFolder(project) && project.Object != null) { @@ -482,11 +483,12 @@ namespace NPanday.VisualStudio.Addin { Solution2 solution = (Solution2)applicationObject.Solution; string solutionDir = Path.GetDirectoryName(solution.FullName); - bool isFlatSingleModule = (solution.Projects.Count == 1 - && Path.GetExtension(solution.Projects.Item(1).FullName).EndsWith("proj") - && solutionDir == Path.GetDirectoryName(solution.Projects.Item(1).FullName)); + Projects projects = solution.Projects; + bool isFlatSingleModule = (projects.Count == 1 + && Path.GetExtension(projects.Item(1).FullName).EndsWith("proj") + && solutionDir == Path.GetDirectoryName(projects.Item(1).FullName)); - foreach (Project project in solution.Projects) + foreach (Project project in Connect.GetAllProjects(projects)) { string projPath = string.Empty; try { projPath = project.FullName; }