public AddinRegistry GetRegistry (ITreeNavigator nav) { Solution sol = (Solution) nav.GetParentDataItem (typeof(Solution), true); if (sol != null) return sol.GetAddinData ().Registry; RegistryInfo reg = (RegistryInfo) nav.GetParentDataItem (typeof(RegistryInfo), true); if (reg != null) return reg.CachedRegistry; return null; }
protected override void OnSelectionChanged(object sender, EventArgs args) { base.OnSelectionChanged(sender, args); ITreeNavigator nav = treeView.GetSelectedNode(); if (nav != null) { WorkspaceItem c = (WorkspaceItem)nav.GetParentDataItem(typeof(WorkspaceItem), true); IdeApp.ProjectOperations.CurrentSelectedWorkspaceItem = c; SolutionItem ce = (SolutionItem)nav.GetParentDataItem(typeof(SolutionItem), true); IdeApp.ProjectOperations.CurrentSelectedSolutionItem = ce; IdeApp.ProjectOperations.CurrentSelectedItem = nav.DataItem; } }
public static void MoveCopyFile(Project project, ITreeNavigator nav, string filename, bool move, bool alreadyInPlace) { if (Runtime.FileUtilityService.IsDirectory (filename)) return; ProjectFolder folder = nav.GetParentDataItem (typeof(ProjectFolder), true) as ProjectFolder; string name = System.IO.Path.GetFileName (filename); string baseDirectory = folder != null ? folder.Path : project.BaseDirectory; string newfilename = alreadyInPlace ? filename : Path.Combine (baseDirectory, name); if (filename != newfilename) { if (File.Exists (newfilename)) { if (!Runtime.MessageService.AskQuestion (string.Format (GettextCatalog.GetString ("The file '{0}' already exists. Do you want to replace it?"), newfilename), "MonoDevelop")) return; } File.Copy (filename, newfilename, true); if (move) Runtime.FileService.RemoveFile (filename); } if (project.IsCompileable (newfilename)) { project.AddFile (newfilename, BuildAction.Compile); } else { project.AddFile (newfilename, BuildAction.Nothing); } Runtime.ProjectService.SaveCombine(); }
public AddinData GetAddinData (ITreeNavigator nav) { DotNetProject p = (DotNetProject) nav.GetParentDataItem (typeof(DotNetProject), true); if (p == null) return null; return p.GetAddinData (); }
public AddinRegistry GetRegistry(ITreeNavigator nav) { Solution sol = (Solution)nav.GetParentDataItem(typeof(Solution), true); if (sol != null) { return(sol.GetAddinData().Registry); } RegistryInfo reg = (RegistryInfo)nav.GetParentDataItem(typeof(RegistryInfo), true); if (reg != null) { return(reg.CachedRegistry); } return(null); }
public AddinData GetAddinData(ITreeNavigator nav) { DotNetProject p = (DotNetProject)nav.GetParentDataItem(typeof(DotNetProject), true); if (p == null) { return(null); } return(p.GetAddinData()); }
protected IUnresolvedAssembly GetMainAssembly(ITreeNavigator treeBuilder) { var loader = (AssemblyLoader)treeBuilder.GetParentDataItem(typeof(AssemblyLoader), true); if (loader != null) { return(loader.UnresolvedAssembly); } return(null); }
public override void GetNodeAttributes(ITreeNavigator parentNode, object dataObject, ref NodeAttributes attributes) { // Hide References folder if the project is a SDK style project. var project = (DotNetProject)parentNode.GetParentDataItem(typeof(DotNetProject), true); if (project.HasFlavor <SdkProjectExtension> ()) { attributes |= NodeAttributes.Hidden; } }
public CachedModelData GetCachedModelData (ITreeNavigator nav) { Project p = (Project) nav.GetParentDataItem (typeof(Project), true); if (p == null) return new CachedModelData (); CachedModelData data = (CachedModelData) p.ExtendedProperties [typeof(CachedModelData)]; if (data == null) { data = new CachedModelData (); p.ExtendedProperties [typeof(CachedModelData)] = data; } return data; }
internal static void PrintDeclaringType(StringBuilder result, ITreeNavigator navigator) { var type = (IType)navigator.GetParentDataItem(typeof(IType), false); if (type == null) { return; } result.Append(GettextCatalog.GetString("<b>Declaring Type:</b>\t{0}", type.FullName)); result.AppendLine(); }
public override void OnNodeDrop(object dataObject, DragOperation operation) { List <IWorkspaceFileObject> toSave = new List <IWorkspaceFileObject> (); if (dataObject is Package) { Package package = (Package)dataObject; ITreeNavigator nav = CurrentNode; CProject dest = nav.GetParentDataItem(typeof(CProject), true) as CProject; nav.MoveToObject(dataObject); CProject source = nav.GetParentDataItem(typeof(CProject), true) as CProject; dest.Packages.Add(package); toSave.Add(dest); if (operation == DragOperation.Move) { source.Packages.Remove(package); toSave.Add(source); } } else if (dataObject is CProject) { CProject draggedProject = (CProject)dataObject; CProject destProject = (CurrentNode.DataItem as ProjectPackageCollection).Project; draggedProject.WriteMDPkgPackage(IdeApp.Workspace.ActiveConfiguration); Package package = new Package(draggedProject); if (!destProject.Packages.Contains(package)) { destProject.Packages.Add(package); toSave.Add(destProject); } } IdeApp.ProjectOperations.SaveAsync(toSave); }
internal static void PrintAssembly(StringBuilder result, ITreeNavigator navigator) { var assemblyDefinition = (AssemblyDefinition)navigator.GetParentDataItem(typeof(AssemblyDefinition), false); if (assemblyDefinition == null) { return; } result.Append(String.Format(GettextCatalog.GetString("<b>Assembly:</b>\t{0}, Version={1}"), assemblyDefinition.Name.Name, assemblyDefinition.Name.Version)); result.AppendLine(); }
protected ITypeResolveContext GetContext(ITreeNavigator treeBuilder) { var mainAssembly = GetMainAssembly(treeBuilder); if (mainAssembly != null) { var simpleCompilation = new SimpleCompilation(mainAssembly); return(new SimpleTypeResolveContext(simpleCompilation.MainAssembly)); } var project = (Project)treeBuilder.GetParentDataItem(typeof(Project), true); var compilation = TypeSystemService.GetCompilation(project); return(new SimpleTypeResolveContext(compilation.MainAssembly)); }
protected IType Resolve(ITreeNavigator treeBuilder, IUnresolvedTypeDefinition type) { var mainAssembly = GetMainAssembly(treeBuilder); if (mainAssembly != null) { var simpleCompilation = new SimpleCompilation(mainAssembly); return(type.Resolve(new SimpleTypeResolveContext(simpleCompilation.MainAssembly))); } var project = (Project)treeBuilder.GetParentDataItem(typeof(Project), true); var ctx = TypeSystemService.GetCompilation(project); return(ctx.MainAssembly.GetTypeDefinition(type.Namespace, type.Name, type.TypeParameters.Count)); }
public override void OnNodeDrop(object dataObject, DragOperation operation) { if (dataObject is ProjectPackage) { ProjectPackage package = (ProjectPackage)dataObject; ITreeNavigator nav = CurrentNode; CProject dest = nav.GetParentDataItem(typeof(CProject), true) as CProject; nav.MoveToObject(dataObject); CProject source = nav.GetParentDataItem(typeof(CProject), true) as CProject; dest.Packages.Add(package); IdeApp.ProjectOperations.SaveProject(dest); if (operation == DragOperation.Move) { source.Packages.Remove(package); IdeApp.ProjectOperations.SaveProject(source); } } else if (dataObject is CProject) { CProject draggedProject = (CProject)dataObject; CProject destProject = (CurrentNode.DataItem as ProjectPackageCollection).Project; draggedProject.WriteMDPkgPackage(); ProjectPackage package = new ProjectPackage(draggedProject); if (!destProject.Packages.Contains(package)) { destProject.Packages.Add(package); IdeApp.ProjectOperations.SaveProject(destProject); } } }
public void OnChanged(object obj) { // Don't use the CurrentNode property here since it may not be properly initialized when the event is fired. ITreeNavigator nav = Tree.GetNodeAtObject(obj); if (nav != null) { IWorkspaceFileObject ce = (IWorkspaceFileObject)nav.GetParentDataItem(typeof(IWorkspaceFileObject), true); if (ce != null) { IdeApp.ProjectOperations.Save(ce); return; } } }
public override void GetNodeAttributes (ITreeNavigator parentNode, object dataObject, ref NodeAttributes attributes) { base.GetNodeAttributes (parentNode, dataObject, ref attributes); if (dataObject is ProjectFile) { string fname = ((ProjectFile)dataObject).Name; if (fname.EndsWith (".addin.xml", StringComparison.Ordinal) || fname.EndsWith (".addin", StringComparison.Ordinal)) { if (!(parentNode.DataItem is AddinData)) { DotNetProject dp = (DotNetProject) parentNode.GetParentDataItem (typeof(DotNetProject), true); if (dp != null && dp.GetAddinData () != null) { // Hide the manifest attributes |= NodeAttributes.Hidden; } } } } }
public CachedModelData GetCachedModelData(ITreeNavigator nav) { Project p = (Project)nav.GetParentDataItem(typeof(Project), true); if (p == null) { return(new CachedModelData()); } CachedModelData data = (CachedModelData)p.ExtendedProperties [typeof(CachedModelData)]; if (data == null) { data = new CachedModelData(); p.ExtendedProperties [typeof(CachedModelData)] = data; } return(data); }
void ShowDocumentation(object ob) { if (docView != null) { paned.Remove(docView); docView.Destroy(); docView = null; } ITreeNavigator nav = tree.GetSelectedNode(); RegistryInfo regInfo = (RegistryInfo)nav.GetParentDataItem(typeof(RegistryInfo), true); AddinRegistry reg = regInfo.CachedRegistry; if (ob is AddinDescription) { AddinView view = new AddinView(); view.Fill((AddinDescription)ob); docView = view; } else if (ob is ExtensionPoint) { ExtensionPointView view = new ExtensionPointView(); view.Fill((ExtensionPoint)ob, reg); docView = view; } else if (ob is Extension) { ExtensionView view = new ExtensionView(); view.Fill((Extension)ob, nav); docView = view; } else if (ob is ExtensionNodeInfo) { ExtensionNodeView view = new ExtensionNodeView(); view.Fill(((ExtensionNodeInfo)ob).Node); docView = view; } if (docView == null) { docView = new Gtk.Label(); } docView.ShowAll(); paned.Add2(docView); }
public override void GetNodeAttributes(ITreeNavigator parentNode, object dataObject, ref NodeAttributes attributes) { base.GetNodeAttributes(parentNode, dataObject, ref attributes); if (dataObject is ProjectFile) { string fname = ((ProjectFile)dataObject).Name; if (fname.EndsWith(".addin.xml", StringComparison.Ordinal) || fname.EndsWith(".addin", StringComparison.Ordinal)) { if (!(parentNode.DataItem is AddinData)) { DotNetProject dp = (DotNetProject)parentNode.GetParentDataItem(typeof(DotNetProject), true); if (dp != null && dp.GetAddinData() != null) { // Hide the manifest attributes |= NodeAttributes.Hidden; } } } } }
public override bool CanDropNode(object dataObject, DragOperation operation, DropPosition pos) { object parent1 = CurrentNode.GetParentDataItem(typeof(Extension), false); if (parent1 == null) { parent1 = CurrentNode.GetParentDataItem(typeof(ExtensionPoint), false); } ITreeNavigator nav = CurrentNode.Clone(); if (!nav.MoveToObject(dataObject)) { return(false); } object parent2 = nav.GetParentDataItem(parent1.GetType(), false); if (parent2 != parent1) { return(false); } return(true); }
protected IUnresolvedAssembly GetMainAssembly (ITreeNavigator treeBuilder) { var loader = (AssemblyLoader)treeBuilder.GetParentDataItem (typeof(AssemblyLoader), true); if (loader != null) return loader.UnresolvedAssembly; return null; }
internal static void PrintAssembly (StringBuilder result, ITreeNavigator navigator) { AssemblyDefinition assemblyDefinition = (AssemblyDefinition)navigator.GetParentDataItem (typeof (AssemblyDefinition), false); if (assemblyDefinition == null) return; result.Append (String.Format (GettextCatalog.GetString ("<b>Assembly:</b>\t{0}, Version={1}"), assemblyDefinition.Name.Name, assemblyDefinition.Name.Version)); result.AppendLine (); }
static Project GetProject(ITreeNavigator node) { Project project = null; if (node.DataItem is Project) project = (Project) node.DataItem; else if (node.DataItem is ProjectFolder) project = ((ProjectFolder) node.DataItem).Project; else if (node.DataItem is ProjectFile) project = ((ProjectFile) node.DataItem).Project; else if (node.DataItem is NamespaceData) project = (Project) node.GetParentDataItem (typeof (Project), false); else if (node.DataItem is ClassData) project = (Project) node.GetParentDataItem (typeof (Project), false); return project; }
protected static bool IsFromAssembly(ITreeNavigator treeBuilder) { return(treeBuilder.GetParentDataItem(typeof(AssemblyLoader), true) != null); }
protected static bool IsFromAssembly (ITreeNavigator treeBuilder) { return treeBuilder.GetParentDataItem (typeof(AssemblyLoader), true) != null; }
protected IType Resolve (ITreeNavigator treeBuilder, IUnresolvedTypeDefinition type) { var mainAssembly = GetMainAssembly (treeBuilder); if (mainAssembly != null) { var simpleCompilation = new SimpleCompilation (mainAssembly); return type.Resolve (new SimpleTypeResolveContext (simpleCompilation.MainAssembly)); } var project = (Project)treeBuilder.GetParentDataItem (typeof(Project), true); var ctx = TypeSystemService.GetCompilation (project); return ctx.MainAssembly.GetTypeDefinition (type.Namespace, type.Name, type.TypeParameters.Count); }
protected ITypeResolveContext GetContext (ITreeNavigator treeBuilder) { var mainAssembly = GetMainAssembly (treeBuilder); if (mainAssembly != null) { var simpleCompilation = new SimpleCompilation (mainAssembly); return new SimpleTypeResolveContext (simpleCompilation.MainAssembly); } var project = (Project)treeBuilder.GetParentDataItem (typeof(Project), true); var ctx = TypeSystemService.GetCompilation (project); return ctx.TypeResolveContext; }
internal AssemblyLoader GetCecilLoader(ITreeNavigator navigator) { return(navigator.GetParentDataItem <AssemblyLoader> (false)); }
internal static void PrintDeclaringType (StringBuilder result, ITreeNavigator navigator) { var type = (IType)navigator.GetParentDataItem (typeof (IType), false); if (type == null) return; result.Append (String.Format (GettextCatalog.GetString ("<b>Declaring Type:</b>\t{0}"), type.FullName)); result.AppendLine (); }
public override void OnNodeDrop(object dataObject, DragOperation operation) { // It allows dropping either project references or projects. // Dropping a project creates a new project reference to that project DotNetProject project = dataObject as DotNetProject; if (project != null) { ProjectReference pr = new ProjectReference(project); DotNetProject p = CurrentNode.GetParentDataItem(typeof(DotNetProject), false) as DotNetProject; if (ProjectReferencesProject(project, p.Name)) { return; } p.References.Add(pr); IdeApp.ProjectOperations.Save(p); return; } // It's dropping a ProjectReference object. ProjectReference pref = dataObject as ProjectReference; ITreeNavigator nav = CurrentNode; if (operation == DragOperation.Move) { NodePosition pos = nav.CurrentPosition; nav.MoveToObject(dataObject); DotNetProject p = nav.GetParentDataItem(typeof(DotNetProject), true) as DotNetProject; nav.MoveToPosition(pos); DotNetProject p2 = nav.GetParentDataItem(typeof(DotNetProject), true) as DotNetProject; p.References.Remove(pref); // Check if there is a cyclic reference after removing from the source project if (pref.ReferenceType == ReferenceType.Project) { DotNetProject pdest = p.ParentSolution.FindProjectByName(pref.Reference) as DotNetProject; if (pdest == null || ProjectReferencesProject(pdest, p2.Name)) { // Restore the dep p.References.Add(pref); return; } } p2.References.Add(pref); IdeApp.ProjectOperations.Save(p); IdeApp.ProjectOperations.Save(p2); } else { nav.MoveToParent(typeof(DotNetProject)); DotNetProject p = nav.DataItem as DotNetProject; // Check for cyclic referencies if (pref.ReferenceType == ReferenceType.Project) { DotNetProject pdest = p.ParentSolution.FindProjectByName(pref.Reference) as DotNetProject; if (pdest == null || ProjectReferencesProject(pdest, p.Name)) { return; } } p.References.Add((ProjectReference)pref.Clone()); IdeApp.ProjectOperations.Save(p); } }
internal CecilLoader GetCecilLoader (ITreeNavigator navigator) { return navigator.GetParentDataItem<AssemblyLoader> (false).CecilLoader; }