From a8b033af9b523df6985a032be386dd1c0d49373e Mon Sep 17 00:00:00 2001 From: Mathias Simmack Date: Wed, 26 Oct 2005 17:08:18 +0000 Subject: [PATCH] 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 --- .../Templates/Project/ProjectDescriptor.cs | 23 +++++++++++++++++++ .../Src/Project/Items/FileProjectItem.cs | 10 ++++++++ .../Project/Src/Project/Items/ProjectItem.cs | 3 +++ .../Src/Project/Items/ProjectItemFactory.cs | 2 ++ 4 files changed, 38 insertions(+) diff --git a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs index 7161a191bc..2556d00259 100644 --- a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs +++ b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs @@ -30,6 +30,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates List files = new List(); // contains FileTemplate classes List projectItems = new List(); + List projectImports = new List(); XmlElement projectOptions = null; @@ -57,6 +58,12 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates return projectOptions; } } + + public List ProjectImports { + get { + return projectImports; + } + } #endregion protected ProjectDescriptor(string name, string relativePath) @@ -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 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 } } } + + static void ReadProjectImports(ProjectDescriptor projectDescriptor, XmlElement xml) + { + XmlNodeList nodes = xml.SelectNodes("Import/@Project"); + foreach(XmlNode node in nodes) { + projectDescriptor.projectImports.Add(node.InnerText); + } + } } } diff --git a/src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs b/src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs index dc937f5fef..e0088170ed 100644 --- a/src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs +++ b/src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs @@ -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 { diff --git a/src/Main/Base/Project/Src/Project/Items/ProjectItem.cs b/src/Main/Base/Project/Src/Project/Items/ProjectItem.cs index 69210efa84..aa3cc25a89 100644 --- a/src/Main/Base/Project/Src/Project/Items/ProjectItem.cs +++ b/src/Main/Base/Project/Src/Project/Items/ProjectItem.cs @@ -35,6 +35,9 @@ namespace ICSharpCode.SharpDevelop.Project Folder, WebReferences, + ApplicationDefinition, + Page, + BootstrapperFile } diff --git a/src/Main/Base/Project/Src/Project/Items/ProjectItemFactory.cs b/src/Main/Base/Project/Src/Project/Items/ProjectItemFactory.cs index 1d030e09fb..689345d724 100644 --- a/src/Main/Base/Project/Src/Project/Items/ProjectItemFactory.cs +++ b/src/Main/Base/Project/Src/Project/Items/ProjectItemFactory.cs @@ -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":