public static CombineDescriptor CreateCombineDescriptor(XmlElement element) { CombineDescriptor combineDescriptor = new CombineDescriptor(element.Attributes["name"].InnerText); if (element.Attributes["directory"] != null) { combineDescriptor.relativeDirectory = element.Attributes["directory"].InnerText; } if (element["Options"] != null && element["Options"]["StartupProject"] != null) { combineDescriptor.startupProject = element["Options"]["StartupProject"].InnerText; } foreach (XmlNode node in element.ChildNodes) { if (node != null) { switch (node.Name) { case "Project": combineDescriptor.entryDescriptors.Add (ProjectDescriptor.CreateProjectDescriptor((XmlElement)node)); break; case "Combine": combineDescriptor.entryDescriptors.Add (CreateCombineDescriptor((XmlElement)node)); break; case "CombineEntry": combineDescriptor.entryDescriptors.Add (CombineEntryDescriptor.CreateDescriptor((XmlElement)node)); break; } } } return combineDescriptor; }
protected ProjectTemplate(AddIn addin, string fileName) { Stream stream = addin.GetResourceStream (fileName); if (stream == null) throw new ApplicationException ("Template " + fileName + " not found"); XmlDocument doc = new XmlDocument(); try { doc.Load(stream); } finally { stream.Close (); } originator = doc.DocumentElement.Attributes["originator"].InnerText; created = doc.DocumentElement.Attributes["created"].InnerText; lastmodified = doc.DocumentElement.Attributes["lastModified"].InnerText; XmlElement config = doc.DocumentElement["TemplateConfiguration"]; if (config["Wizard"] != null) { wizardpath = config["Wizard"].InnerText; } name = GettextCatalog.GetString (config["_Name"].InnerText); category = config["Category"].InnerText; if (config["LanguageName"] != null) languagename = config["LanguageName"].InnerText; if (config["_Description"] != null) { description = GettextCatalog.GetString (config["_Description"].InnerText); } if (config["Icon"] != null) { icon = ResourceService.GetStockId (addin, config["Icon"].InnerText); } if (doc.DocumentElement["Combine"] != null) { combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Combine"]); } // Read Actions; if (doc.DocumentElement["Actions"] != null) { foreach (XmlElement el in doc.DocumentElement["Actions"]) { actions.Add(new OpenFileAction(el.Attributes["filename"].InnerText)); } } }