public override bool AddToProject (SolutionItem policyParent, Project project, string language, string directory, string name) { if (!GtkDesignInfo.SupportsDesigner (project)) { ReferenceManager mgr = new ReferenceManager (project as DotNetProject); mgr.GtkPackageVersion = mgr.DefaultGtkVersion; mgr.Dispose (); } GtkDesignInfo info = GtkDesignInfo.FromProject ((DotNetProject) project); GuiBuilderProject gproject = info.GuiBuilderProject; string fileName = fileTemplate.GetFileName (policyParent, project, language, directory, name); fileTemplate.AddToProject (policyParent, project, language, directory, name); ProjectDomService.Parse (project, fileName); DotNetProject netProject = project as DotNetProject; string ns = netProject != null ? netProject.GetDefaultNamespace (fileName) : ""; string cname = Path.GetFileNameWithoutExtension (fileName); string fullName = ns.Length > 0 ? ns + "." + cname : cname; string[,] tags = { {"Name", cname}, {"Namespace", ns}, {"FullName", fullName} }; XmlElement widgetElem = steticTemplate ["widget"]; if (widgetElem != null) { string content = widgetElem.OuterXml; content = StringParserService.Parse (content, tags); XmlDocument doc = new XmlDocument (); doc.LoadXml (content); gproject.AddNewComponent (doc.DocumentElement); gproject.Save (false); IdeApp.ProjectOperations.Save (project); return true; } widgetElem = steticTemplate ["action-group"]; if (widgetElem != null) { string content = widgetElem.OuterXml; content = StringParserService.Parse (content, tags); XmlDocument doc = new XmlDocument (); doc.LoadXml (content); gproject.SteticProject.AddNewActionGroup (doc.DocumentElement); gproject.Save (false); IdeApp.ProjectOperations.Save (project); return true; } throw new InvalidOperationException ("<widget> or <action-group> element not found in widget template."); }
public void Dispose() { if (resourceProvider != null) { System.Runtime.Remoting.RemotingServices.Disconnect(resourceProvider); } resourceProvider = null; if (builderProject != null) { builderProject.Dispose(); } builderProject = null; if (referenceManager != null) { referenceManager.Dispose(); } referenceManager = null; Project = null; }
public override async Task <bool> AddToProjectAsync(SolutionFolderItem policyParent, Project project, string language, string directory, string name) { if (!GtkDesignInfo.SupportsDesigner(project)) { ReferenceManager mgr = new ReferenceManager(project as DotNetProject); mgr.GtkPackageVersion = mgr.DefaultGtkVersion; mgr.Dispose(); } GtkDesignInfo info = GtkDesignInfo.FromProject((DotNetProject)project); GuiBuilderProject gproject = info.GuiBuilderProject; string fileName = fileTemplate.GetFileName(policyParent, project, language, directory, name); await fileTemplate.AddToProjectAsync(policyParent, project, language, directory, name); DotNetProject netProject = project as DotNetProject; string ns = netProject != null?netProject.GetDefaultNamespace(fileName) : ""; string cname = Path.GetFileNameWithoutExtension(fileName); string fullName = ns.Length > 0 ? ns + "." + cname : cname; string[,] tags = { { "Name", cname }, { "Namespace", ns }, { "FullName", fullName } }; XmlElement widgetElem = steticTemplate ["widget"]; if (widgetElem != null) { string content = widgetElem.OuterXml; content = StringParserService.Parse(content, tags); XmlDocument doc = new XmlDocument(); doc.LoadXml(content); gproject.AddNewComponent(doc.DocumentElement); gproject.SaveAll(false); IdeApp.ProjectOperations.SaveAsync(project).Ignore(); return(true); } widgetElem = steticTemplate ["action-group"]; if (widgetElem != null) { string content = widgetElem.OuterXml; content = StringParserService.Parse(content, tags); XmlDocument doc = new XmlDocument(); doc.LoadXml(content); gproject.SteticProject.AddNewActionGroup(doc.DocumentElement); gproject.SaveAll(false); IdeApp.ProjectOperations.SaveAsync(project).Ignore(); return(true); } throw new InvalidOperationException("<widget> or <action-group> element not found in widget template."); }