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."); }
static void OnReferenceAdded(object o, ProjectReferenceEventArgs args) { if (updating || !IsGtkReference(args.ProjectReference)) { return; } string sr = args.ProjectReference.StoredReference; string version = sr.Substring(sr.IndexOf(",") + 1).Trim(); ReferenceManager rm = new ReferenceManager(args.Project as DotNetProject); rm.Update(version); }
public bool UpdateGtkFolder() { if (!SupportsDesigner(project)) { return(false); } // This method synchronizes the current gtk project configuration info // with the needed support files in the gtk-gui folder. FileService.CreateDirectory(SteticFolder); bool projectModified = false; foreach (string filename in GetDesignerFiles()) { ProjectFile pf = project.AddFile(filename, BuildAction.EmbeddedResource); pf.ResourceId = Path.GetFileName(filename); string componentFile = GetComponentFileFromDesigner(filename); if (componentFile != null && File.Exists(componentFile)) { pf.DependsOn = componentFile; string buildFile = GetBuildFileFromComponent(componentFile); if (buildFile != null && File.Exists(buildFile)) { ProjectFile pf2 = project.AddFile(buildFile, BuildAction.Compile); pf2.ResourceId = Path.GetFileName(buildFile); pf2.DependsOn = componentFile; } } projectModified = true; } StringCollection files = GuiBuilderProject.GenerateFiles(SteticFolder); foreach (string filename in files) { if (!project.IsFileInProject(filename)) { project.AddFile(filename, BuildAction.Compile); projectModified = true; } } UpdateObjectsFile(); return(ReferenceManager.Update() || projectModified); }
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 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; }
static void OnReferenceAdded (object o, ProjectReferenceEventArgs args) { if (updating || !IsGtkReference (args.ProjectReference)) return; string sr = args.ProjectReference.StoredReference; string version = sr.Substring (sr.IndexOf (",") + 1).Trim (); ReferenceManager rm = new ReferenceManager (args.Project as DotNetProject); rm.Update (version); }
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."); }
protected override void Run() { ReferenceManager.Initialize(); }