|
|
|
@ -3,6 +3,8 @@
@@ -3,6 +3,8 @@
|
|
|
|
|
|
|
|
|
|
using System; |
|
|
|
|
using System.IO; |
|
|
|
|
using System.Linq; |
|
|
|
|
using ICSharpCode.Core; |
|
|
|
|
using ICSharpCode.SharpDevelop.Project; |
|
|
|
|
using SD = ICSharpCode.SharpDevelop.Project; |
|
|
|
|
|
|
|
|
@ -10,15 +12,15 @@ namespace ICSharpCode.PackageManagement.EnvDTE
@@ -10,15 +12,15 @@ namespace ICSharpCode.PackageManagement.EnvDTE
|
|
|
|
|
{ |
|
|
|
|
public class ProjectItemRelationship |
|
|
|
|
{ |
|
|
|
|
public ProjectItemRelationship(ProjectItem projectItem, SD.ProjectItem msbuildProjectItem) |
|
|
|
|
public ProjectItemRelationship(ProjectItem parentProjectItem, SD.ProjectItem msbuildProjectItem) |
|
|
|
|
{ |
|
|
|
|
this.ProjectItem = projectItem; |
|
|
|
|
this.ParentProjectItem = parentProjectItem; |
|
|
|
|
this.MSBuildProjectItem = msbuildProjectItem; |
|
|
|
|
this.Project = projectItem.ContainingProject; |
|
|
|
|
this.Project = parentProjectItem.ContainingProject; |
|
|
|
|
GetRelationship(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public ProjectItem ProjectItem { get; private set; } |
|
|
|
|
public ProjectItem ParentProjectItem { get; private set; } |
|
|
|
|
public SD.ProjectItem MSBuildProjectItem { get; private set; } |
|
|
|
|
public Project Project { get; private set; } |
|
|
|
|
|
|
|
|
@ -48,7 +50,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
@@ -48,7 +50,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
|
|
|
|
|
|
|
|
|
|
bool IsChildItem() |
|
|
|
|
{ |
|
|
|
|
return ProjectItem.IsChildItem(MSBuildProjectItem); |
|
|
|
|
return ParentProjectItem.IsChildItem(MSBuildProjectItem); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ProjectItem CreateProjectItem() |
|
|
|
@ -58,12 +60,20 @@ namespace ICSharpCode.PackageManagement.EnvDTE
@@ -58,12 +60,20 @@ namespace ICSharpCode.PackageManagement.EnvDTE
|
|
|
|
|
|
|
|
|
|
bool IsInChildDirectory() |
|
|
|
|
{ |
|
|
|
|
return MSBuildProjectItemDirectory.StartsWith(ProjectItem.Name); |
|
|
|
|
return MSBuildProjectItemDirectory.StartsWith(ParentProjectItem.GetIncludePath()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ProjectItem CreateDirectoryItem() |
|
|
|
|
{ |
|
|
|
|
return new DirectoryProjectItem(Project, MSBuildProjectItemDirectory); |
|
|
|
|
string relativePath = GetPathOneDirectoryBelowParentProjectItem(); |
|
|
|
|
return new DirectoryProjectItem(Project, relativePath); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
string GetPathOneDirectoryBelowParentProjectItem() |
|
|
|
|
{ |
|
|
|
|
string[] parentDirectories = ParentProjectItem.GetIncludePath().Split('\\'); |
|
|
|
|
string[] directories = MSBuildProjectItemDirectory.Split('\\'); |
|
|
|
|
return String.Join(@"\", directories.Take(parentDirectories.Length + 1).ToArray()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|