diff options
author | Lluis Sanchez <lluis@novell.com> | 2009-02-23 20:25:42 +0300 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2009-02-23 20:25:42 +0300 |
commit | 706e998792c22ec395ffa88791301d2a672f9252 (patch) | |
tree | 0af983b594e529bcb3221cdda11b70718aabbc07 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad | |
parent | 0d0a03273e44377b9a15b868a6eb661f9ce2d04e (diff) |
* Makefile.am:
* MonoDevelop.Ide.csproj: Added new files.
* MonoDevelop.Ide.Gui/Ide.cs: When registering for the Initialized
event, fire it if the IDE has already been initialized.
* MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs:
* MonoDevelop.Ide.Gui.Pads/SolutionPad.cs:
* MonoDevelop.Ide.Codons/SolutionPadCodon.cs:
* MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs:
* MonoDevelop.Ide.Gui.Components/NodeCommandHandler.cs:
* MonoDevelop.Ide.Codons/PadContextMenuExtensionNode.cs: Allow setting
the default context menu to be used when none is specified for a
node type.
* MonoDevelop.Ide.addin.xml:
* MonoDevelop.Ide.Codons/ProjectActiveCondition.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs:
* MonoDevelop.Ide.Gui.Pads.ClassPad/SolutionNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectSolutionPad.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/FileOperationsBuilderExtension.cs:
* MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs:
Merged all project pad context menus in a single extension point.
svn path=/trunk/monodevelop/; revision=127763
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad')
15 files changed, 125 insertions, 176 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FileOperationsBuilderExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FileOperationsBuilderExtension.cs new file mode 100644 index 0000000000..70f7ae31ea --- /dev/null +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FileOperationsBuilderExtension.cs @@ -0,0 +1,104 @@ +// +// FileOperationsBuilderExtension.cs +// +// Author: +// Lluis Sanchez Gual <lluis@novell.com> +// +// Copyright (c) 2009 Novell, Inc (http://www.novell.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +using System; +using System.Collections.Generic; +using MonoDevelop.Projects; +using MonoDevelop.Components.Commands; +using MonoDevelop.Ide.Commands; +using MonoDevelop.Ide.Gui.Components; +using MonoDevelop.Ide.Gui.Search; +using MonoDevelop.Core; + +namespace MonoDevelop.Ide.Gui.Pads.ProjectPad +{ + class FileOperationsBuilderExtension: NodeBuilderExtension + { + public override bool CanBuildNode (Type dataType) + { + return typeof(IFileItem).IsAssignableFrom (dataType) || + typeof(IFolderItem).IsAssignableFrom (dataType); + } + + public override Type CommandHandlerType { + get { return typeof(FileOperationsCommandHandler); } + } + } + + class FileOperationsCommandHandler: NodeCommandHandler + { + string GetDir (object ob) + { + if (ob is IFolderItem) + return ((IFolderItem)ob).BaseDirectory; + else if (ob is IFileItem) { + string path = ((IFileItem)ob).FileName; + if (!string.IsNullOrEmpty (path)) + return System.IO.Path.GetDirectoryName (path); + } + return string.Empty; + } + + [CommandHandler (FileCommands.OpenContainingFolder)] + [AllowMultiSelection] + public void OnOpenFolder () + { + HashSet<string> paths = new HashSet<string> (); + foreach (ITreeNavigator node in CurrentNodes) { + string path = GetDir (node.DataItem); + if (!string.IsNullOrEmpty (path) && paths.Add (path)) + System.Diagnostics.Process.Start ("file://" + path); + } + } + + [CommandHandler (SearchCommands.FindInFiles)] + public void OnFindInFiles () + { + string path = GetDir (CurrentNode.DataItem); + SearchReplaceInFilesManager.ShowFindDialog (path); + } + + public static string TerminalCommand { + get { + return PropertyService.Get ("MonoDevelop.Shell", "gnome-terminal"); + } + } + + [CommandHandler (FileCommands.OpenInTerminal)] + [AllowMultiSelection] + public void OnOpenInTerminal () + { + HashSet<string> paths = new HashSet<string> (); + foreach (ITreeNavigator node in CurrentNodes) { + string path = GetDir (node.DataItem); + string terminal = TerminalCommand; + if (paths.Add (path)) + Runtime.ProcessService.StartProcess (terminal, "", path, null); + } + } + + } +} diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs index eef83c16b0..ec7ff20aa0 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs @@ -359,42 +359,5 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad CurrentNode.Expanded = true; Tree.AddNodeInsertCallback (new ProjectFolder (directoryName, project), new TreeNodeCallback (OnFileInserted)); } - - [CommandHandler (SearchCommands.FindInFiles)] - public void OnFindInFiles () - { - SearchReplaceInFilesManager.ShowFindDialog (GetFolderPath (CurrentNode.DataItem)); - } - - public static string TerminalCommand { - get { - return PropertyService.Get ("MonoDevelop.Shell", "gnome-terminal"); - } - } - - [CommandHandler (FileCommands.OpenInTerminal)] - [AllowMultiSelection] - public void OnOpenInTerminal () - { - Set<string> paths = new Set<string> (); - foreach (ITreeNavigator node in CurrentNodes) { - string path = GetFolderPath (node.DataItem); - string terminal = TerminalCommand; - if (paths.Add (path)) - Runtime.ProcessService.StartProcess (terminal, "", path, null); - } - } - - [CommandHandler (FileCommands.OpenFolder)] - [AllowMultiSelection] - public void OnOpenFolder () - { - Set<string> paths = new Set<string> (); - foreach (ITreeNavigator node in CurrentNodes) { - string path = GetFolderPath (node.DataItem); - if (paths.Add (path)) - System.Diagnostics.Process.Start ("file://" + path); - } - } } } 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 2aea84b8d1..15bda14f0c 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 @@ -59,10 +59,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad return Path.GetFileName (((ProjectFile)dataObject).Name); } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/ProjectFile"; } - } - public override void GetNodeAttributes (ITreeNavigator treeNavigator, object dataObject, ref NodeAttributes attributes) { ProjectFile file = (ProjectFile) dataObject; @@ -185,19 +181,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad { } - [CommandHandler (FileCommands.OpenContainingFolder)] - [AllowMultiSelection] - public void OnOpenFolder () - { - Set<string> paths = new Set<string> (); - foreach (ITreeNavigator node in CurrentNodes) { - ProjectFile file = (ProjectFile) node.DataItem; - string path = System.IO.Path.GetDirectoryName (file.FilePath); - if (paths.Add (path)) - System.Diagnostics.Process.Start ("file://" + path); - } - } - public override bool CanDeleteItem () { return ((ProjectFile) CurrentNode.DataItem).DependsOnFile == null; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs index ff3acb3341..3ee167306f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs @@ -36,7 +36,7 @@ using MonoDevelop.Core.Gui; namespace MonoDevelop.Ide.Gui.Pads.ProjectPad { - public class ProjectFolder: IDisposable + public class ProjectFolder: IDisposable, IFolderItem { string absolutePath; Project project; @@ -67,6 +67,10 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad } } + string IFolderItem.BaseDirectory { + get { return Path; } + } + public string Path { get { return absolutePath; } } 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 290afd2af9..d9a5db2350 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 @@ -68,10 +68,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad return ((ProjectFolder)dataObject).Path; } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/Folder"; } - } - protected override void Initialize () { base.Initialize (); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs index d0f411df53..a65b0f6bb2 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs @@ -102,10 +102,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad return ((Project)dataObject).BaseDirectory; } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/Project"; } - } - public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon) { base.BuildNode (treeBuilder, dataObject, ref label, ref icon, ref closedIcon); @@ -347,15 +343,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad IdeApp.ProjectOperations.Save (sol); } } - [CommandHandler (FileCommands.OpenContainingFolder)] - [AllowMultiSelection] - public void OpenContainingFolder () - { - foreach (ITreeNavigator nav in CurrentNodes) { - Project prj = nav.DataItem as Project; - System.Diagnostics.Process.Start ("file://" + prj.BaseDirectory); - } - } [CommandHandler (ProjectCommands.AddReference)] public void AddReferenceToProject () 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 4e725a3a6f..c9ffc917c8 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 @@ -57,10 +57,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad return "References"; } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/ReferenceFolder"; } - } - protected override void Initialize () { addedHandler = (ProjectReferenceEventHandler) DispatchService.GuiDispatch (new ProjectReferenceEventHandler (OnAddReference)); @@ -121,11 +117,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad public class ProjectReferenceFolderNodeCommandHandler: NodeCommandHandler { - public override DragOperation CanDragNode () - { - return DragOperation.Copy | DragOperation.Move; - } - public override bool CanDropNode (object dataObject, DragOperation operation) { return dataObject is ProjectReference || dataObject is Project; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs index ac92386ae1..7bdb3329a5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs @@ -56,10 +56,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad return ((ProjectReference)dataObject).Reference; } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/Reference"; } - } - public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon) { ProjectReference pref = (ProjectReference) dataObject; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectSolutionPad.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectSolutionPad.cs index 6586fa09a9..5c5b3c3968 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectSolutionPad.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectSolutionPad.cs @@ -28,6 +28,7 @@ using System; using System.Resources; +using System.Collections.Generic; using MonoDevelop.Projects; using MonoDevelop.Core; @@ -44,6 +45,16 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad IdeApp.Workbench.ActiveDocumentChanged += new EventHandler (OnWindowChanged); } + public override void Initialize (MonoDevelop.Ide.Gui.Components.NodeBuilder[] builders, MonoDevelop.Ide.Gui.Components.TreePadOption[] options, string contextMenuPath) + { + base.Initialize (builders, options, contextMenuPath); + var aliases = new Dictionary<string,string> (); + aliases.Add ("SystemFile", "MonoDevelop.Ide.Gui.Pads.ProjectPad.SystemFile"); + aliases.Add ("ProjectFolder", "MonoDevelop.Ide.Gui.Pads.ProjectPad.ProjectFolder"); + TreeView.ContextMenuTypeNameAliases = aliases; + } + + protected override void OnSelectionChanged (object sender, EventArgs args) { base.OnSelectionChanged (sender, args); 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 ad09ec0022..6d2e1816b9 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 @@ -68,10 +68,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad attributes |= NodeAttributes.AllowRename; } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/SolutionFolder"; } - } - public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon) { SolutionFolder combine = dataObject as SolutionFolder; @@ -241,25 +237,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad } } - [CommandHandler (FileCommands.OpenContainingFolder)] - [AllowMultiSelection] - public void OpenContainingFolder () - { - Set<string> paths = new Set<string> (); - foreach (ITreeNavigator node in CurrentNodes) { - SolutionFolder folder = (SolutionFolder) node.DataItem; - if (paths.Add (folder.BaseDirectory)) - System.Diagnostics.Process.Start ("file://" + folder.BaseDirectory); - } - } - - [CommandHandler (SearchCommands.FindInFiles)] - public void OnFindInFiles () - { - SolutionFolder folder = (SolutionFolder) CurrentNode.DataItem; - SearchReplaceInFilesManager.ShowFindDialog (folder.BaseDirectory); - } - void OnEntryInserted (ITreeNavigator nav) { nav.Selected = true; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs index 573d185050..5969db83c5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs @@ -85,10 +85,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad attributes |= NodeAttributes.AllowRename; } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/Solution"; } - } - public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon) { Solution solution = dataObject as Solution; @@ -313,25 +309,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad Tree.StartLabelEdit (); } - [CommandHandler (FileCommands.OpenContainingFolder)] - [AllowMultiSelection] - public void OnOpenFolder () - { - Set<string> paths = new Set<string> (); - foreach (ITreeNavigator node in CurrentNodes) { - Solution solution = (Solution) node.DataItem; - if (paths.Add (solution.BaseDirectory)) - System.Diagnostics.Process.Start ("file://" + solution.BaseDirectory); - } - } - - [CommandHandler (SearchCommands.FindInFiles)] - public void OnFindInFiles () - { - Solution solution = (Solution) CurrentNode.DataItem; - SearchReplaceInFilesManager.ShowFindDialog (solution.BaseDirectory); - } - [CommandHandler (FileCommands.CloseWorkspaceItem)] [AllowMultiSelection] public void OnCloseItem () diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs index 886be93c95..a6c3c2c91e 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFile.cs @@ -33,7 +33,7 @@ using MonoDevelop.Projects; namespace MonoDevelop.Ide.Gui.Pads.ProjectPad { - public class SystemFile + public class SystemFile: IFileItem { string absolutePath; Project project; @@ -54,6 +54,10 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad get { return absolutePath; } } + string IFileItem.FileName { + get { return Path; } + } + public string Name { get { return System.IO.Path.GetFileName (absolutePath); } } 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 ef8a33489a..bd456a36a5 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 @@ -56,10 +56,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad return Path.GetFileName (((SystemFile)dataObject).Name); } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/SystemFile"; } - } - public override void GetNodeAttributes (ITreeNavigator treeNavigator, object dataObject, ref NodeAttributes attributes) { attributes |= NodeAttributes.AllowRename; @@ -187,18 +183,5 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad prev = fv; } } - - [CommandHandler (FileCommands.OpenContainingFolder)] - [AllowMultiSelection] - public void OnOpenFolder () - { - Set<string> folders = new Set<string> (); - foreach (ITreeNavigator node in CurrentNodes) { - SystemFile file = node.DataItem as SystemFile; - string path = System.IO.Path.GetDirectoryName (file.Path); - if (folders.Add (path)) - System.Diagnostics.Process.Start ("file://" + path); - } - } } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs index 7642b75b8e..1b333d1774 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs @@ -44,10 +44,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad get { return typeof(UnknownSolutionItem); } } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/UnknownEntry"; } - } - public override Type CommandHandlerType { get { return typeof(UnknownEntryCommandHandler); } } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs index 72c626d69f..7b9e7bf57f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs @@ -75,10 +75,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad attributes |= NodeAttributes.AllowRename; } - public override string ContextMenuAddinPath { - get { return "/MonoDevelop/Ide/ContextMenu/ProjectPad/Workspace"; } - } - public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon) { Workspace workspace = dataObject as Workspace; @@ -296,25 +292,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad nav.Expanded = true; } - [CommandHandler (FileCommands.OpenContainingFolder)] - [AllowMultiSelection] - public void OnOpenFolder () - { - Set<string> paths = new Set<string> (); - foreach (ITreeNavigator node in CurrentNodes) { - Workspace ws = (Workspace) node.DataItem; - if (paths.Add (ws.BaseDirectory)) - System.Diagnostics.Process.Start ("file://" + ws.BaseDirectory); - } - } - - [CommandHandler (SearchCommands.FindInFiles)] - public void OnFindInFiles () - { - Workspace ws = (Workspace) CurrentNode.DataItem; - SearchReplaceInFilesManager.ShowFindDialog (ws.BaseDirectory); - } - [CommandHandler (FileCommands.CloseWorkspaceItem)] [AllowMultiSelection] public void OnCloseItem () |