Browse Source

new ApplicationDefinition/Page compiler option; support for external Import commands in XPT project files

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@634 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Mathias Simmack 20 years ago
parent
commit
a8b033af9b
  1. 23
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs
  2. 10
      src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs
  3. 3
      src/Main/Base/Project/Src/Project/Items/ProjectItem.cs
  4. 2
      src/Main/Base/Project/Src/Project/Items/ProjectItemFactory.cs

23
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs

@ -30,6 +30,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -30,6 +30,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
List<FileDescriptionTemplate> files = new List<FileDescriptionTemplate>(); // contains FileTemplate classes
List<ProjectItem> projectItems = new List<ProjectItem>();
List<string> projectImports = new List<string>();
XmlElement projectOptions = null;
@ -57,6 +58,12 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -57,6 +58,12 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
return projectOptions;
}
}
public List<string> ProjectImports {
get {
return projectImports;
}
}
#endregion
protected ProjectDescriptor(string name, string relativePath)
@ -125,6 +132,11 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -125,6 +132,11 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
project.Items.Add(projectItem);
}
// Add Imports
foreach(string projectImport in projectImports) {
((AbstractProject)project).Imports.Add(projectImport);
}
// Add Files
foreach (FileDescriptionTemplate file in files) {
string fileName = Path.Combine(projectCreateInformation.ProjectBasePath, StringParser.Parse(file.Name, new string[,] { {"ProjectName", projectCreateInformation.ProjectName} }));
@ -222,6 +234,9 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -222,6 +234,9 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
if (element["ProjectItems"] != null) {
ReadProjectItems(projectDescriptor, element["ProjectItems"]);
}
if (element["Imports"] != null) {
ReadProjectImports(projectDescriptor, element["Imports"]);
}
return projectDescriptor;
}
@ -238,5 +253,13 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -238,5 +253,13 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
}
}
static void ReadProjectImports(ProjectDescriptor projectDescriptor, XmlElement xml)
{
XmlNodeList nodes = xml.SelectNodes("Import/@Project");
foreach(XmlNode node in nodes) {
projectDescriptor.projectImports.Add(node.InnerText);
}
}
}
}

10
src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs

@ -90,6 +90,16 @@ namespace ICSharpCode.SharpDevelop.Project @@ -90,6 +90,16 @@ namespace ICSharpCode.SharpDevelop.Project
base.Properties["DependentUpon"] = value;
}
}
[Browsable(false)]
public string SubType {
get {
return base.Properties["SubType"];
}
set {
base.Properties["SubType"] = value;
}
}
[Browsable(false)]
public bool IsLink {

3
src/Main/Base/Project/Src/Project/Items/ProjectItem.cs

@ -35,6 +35,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -35,6 +35,9 @@ namespace ICSharpCode.SharpDevelop.Project
Folder,
WebReferences,
ApplicationDefinition,
Page,
BootstrapperFile
}

2
src/Main/Base/Project/Src/Project/Items/ProjectItemFactory.cs

@ -33,6 +33,8 @@ namespace ICSharpCode.SharpDevelop.Project @@ -33,6 +33,8 @@ namespace ICSharpCode.SharpDevelop.Project
case "WebReferences":
case "Folder":
case "BootstrapperFile":
case "ApplicationDefinition":
case "Page":
return new FileProjectItem(project, (ItemType)Enum.Parse(typeof(ItemType), itemType));
case "WebReferenceUrl":

Loading…
Cancel
Save