diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2017-01-18 19:57:32 +0300 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2017-01-18 19:57:32 +0300 |
commit | e10094724b24fcabc6114e3ae9cdd1edfdf92550 (patch) | |
tree | 70e355cb91d69c9f3323212314a0e93e8bfdf31a /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad | |
parent | b866645102f8cd847f34431c56376c6bf87bfe95 (diff) |
Introduce NodeBuilder.GetSortIndex()
This method is used to get the sorting group of a node. It makes it easier
for add-ins to set node ordering.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad')
7 files changed, 19 insertions, 32 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/PortableFrameworkSubsetNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/PortableFrameworkSubsetNodeBuilder.cs index 5f8ab86709..60c43377da 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/PortableFrameworkSubsetNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/PortableFrameworkSubsetNodeBuilder.cs @@ -83,6 +83,11 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad treeBuilder.AddChildren (project.TargetRuntime.AssemblyContext.GetAssemblies (project.TargetFramework)
.Where (asm => asm.Package.IsFrameworkPackage && asm.Name != "mscorlib")
.Select (asm => new ImplicitFrameworkAssemblyReference (asm)));
+ }
+
+ public override int GetSortIndex (ITreeNavigator node) + { + return -1000; } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs index 5918f1803a..d8f55c4c31 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs @@ -109,9 +109,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad public override int CompareObjects (ITreeNavigator thisNode, ITreeNavigator otherNode) { - if (otherNode.DataItem is ProjectFolder) - return 1; - if (!(thisNode.DataItem is ProjectFile)) return DefaultSort; if (!(otherNode.DataItem is ProjectFile)) diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs index d5409a51c8..aff577c773 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs @@ -112,6 +112,12 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad tb.UpdateChildren (); } } + + public override int GetSortIndex (ITreeNavigator node) + { + // Before items, but after references and other collections + return -100; + } public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) { diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs index 43bbe3e59c..0f2ba3af5f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs @@ -95,12 +95,10 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad var p = (DotNetProject) builder.GetParentDataItem (typeof(DotNetProject), true); return p != null && p.IsPortableLibrary; } - - public override int CompareObjects (ITreeNavigator thisNode, ITreeNavigator otherNode) + + public override int GetSortIndex (ITreeNavigator node) { - if (otherNode.DataItem is GettingStartedNode) - return 1; - return -1; + return -1000; } void OnRemoveReference (object sender, ProjectReferenceEventArgs e) diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderFileNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderFileNodeBuilder.cs index f96a0dadb9..c4499e5157 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderFileNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderFileNodeBuilder.cs @@ -69,14 +69,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad else return file.Parent; } - - public override int CompareObjects (ITreeNavigator thisNode, ITreeNavigator otherNode) - { - if (otherNode.DataItem is SolutionFolderFileNode) - return DefaultSort; - else - return -1; - } } class SolutionFolderFileNodeCommandHandler: NodeCommandHandler diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs index 9401cb7182..8daa364fc9 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs @@ -83,16 +83,13 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad { SolutionFolder sf = (SolutionFolder) dataObject; return sf.IsRoot || sf.ParentFolder.IsRoot ? (object) sf.ParentSolution : (object) sf.ParentFolder; - } - - public override int CompareObjects (ITreeNavigator thisNode, ITreeNavigator otherNode) + }
+
+ public override int GetSortIndex (ITreeNavigator node) { - if (otherNode.DataItem is SolutionFolder) - return DefaultSort; - else - return -1; + return -1000; } - + public override void OnNodeAdded (object dataObject) { SolutionFolder folder = (SolutionFolder) dataObject; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs index 54834f3f25..fe17301dc1 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs @@ -80,14 +80,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad nodeInfo.Label = "<span foreground='dimgrey'>" + nodeInfo.Label + "</span>"; } } - - public override int CompareObjects (ITreeNavigator thisNode, ITreeNavigator otherNode) - { - if (otherNode.DataItem is ProjectFolder) - return 1; - else - return DefaultSort; - } } class SystemFileNodeCommandHandler: NodeCommandHandler |