Browse Source

Context menu for removing assemblies from ClassBrowser workspace.

newNRILSpyDebugger
Andreas Weizel 13 years ago
parent
commit
0a9c01d948
  1. 9
      src/Main/Base/Project/Dom/ClassBrowser/AssemblyTreeNode.cs
  2. 19
      src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
  3. 2
      src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs
  4. 43
      src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs
  5. 2
      src/Main/SharpDevelop/SharpDevelop.csproj

9
src/Main/Base/Project/Dom/ClassBrowser/AssemblyTreeNode.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using ICSharpCode.Core.Presentation;
using ICSharpCode.TreeView; using ICSharpCode.TreeView;
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
@ -46,6 +47,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
return SD.ResourceService.GetImageSource("Icons.16x16.Assembly"); return SD.ResourceService.GetImageSource("Icons.16x16.Assembly");
} }
} }
public override void ShowContextMenu()
{
var assemblyModel = this.Model as IAssemblyModel;
if (assemblyModel != null) {
var ctx = MenuService.ShowContextMenu(null, assemblyModel, "/SharpDevelop/Pads/ClassBrowser/AssemblyContextMenu");
}
}
} }
} }

19
src/Main/Base/Project/ICSharpCode.SharpDevelop.addin

@ -908,7 +908,7 @@
<!-- ClassBrowser --> <!-- ClassBrowser -->
<Path name = "/SharpDevelop/Pads/ClassBrowser/Toolbar"> <Path name = "/SharpDevelop/Pads/ClassBrowser/Toolbar">
<ToolbarItem id = "Back" <!--<ToolbarItem id = "Back"
icon = "Icons.16x16.BrowserBefore" icon = "Icons.16x16.BrowserBefore"
tooltip = "${res:MainWindow.Windows.ClassBrowser.BackButton.ToolTip}" tooltip = "${res:MainWindow.Windows.ClassBrowser.BackButton.ToolTip}"
loadclasslazy = "false" loadclasslazy = "false"
@ -919,7 +919,7 @@
loadclasslazy = "false" loadclasslazy = "false"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateForward"/> class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateForward"/>
<ToolbarItem id = "NavigationSeparator" type = "Separator"/> <ToolbarItem id = "NavigationSeparator" type = "Separator"/>-->
<ToolbarItem id = "OpenAssembly" <ToolbarItem id = "OpenAssembly"
type = "DropDownButton" type = "DropDownButton"
icon = "Icons.16x16.Assembly" icon = "Icons.16x16.Assembly"
@ -927,13 +927,13 @@
<MenuItem id = "OpenAssemblyFromFile" <MenuItem id = "OpenAssemblyFromFile"
icon = "Icons.16x16.AssemblyFromFile" icon = "Icons.16x16.AssemblyFromFile"
label = "Open assembly from file" label = "Open assembly from file"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.OpenAssemblyFromFileCommand"/> class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.OpenAssemblyFromFileCommand"/>
<MenuItem id = "OpenAssemblyFromGAC" <MenuItem id = "OpenAssemblyFromGAC"
icon = "Icons.16x16.AssemblyFromGAC" icon = "Icons.16x16.AssemblyFromGAC"
label = "Open assembly from GAC" label = "Open assembly from GAC"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.OpenAssemblyFromGACCommand"/> class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.OpenAssemblyFromGACCommand"/>
</ToolbarItem> </ToolbarItem>
<ToolbarItem id = "SelectFilter" <!--<ToolbarItem id = "SelectFilter"
type = "DropDownButton" type = "DropDownButton"
icon = "Icons.16x16.FindInFiles" icon = "Icons.16x16.FindInFiles"
tooltip = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettingsButton.ToolTip}" tooltip = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettingsButton.ToolTip}"
@ -968,7 +968,7 @@
<ToolbarItem id = "Collapse" <ToolbarItem id = "Collapse"
icon = "Icons.16x16.Collection" icon = "Icons.16x16.Collection"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}" tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCollapseAll"/> class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.ClassBrowserCollapseAll"/>-->
</Path> </Path>
<Path name = "/SharpDevelop/Pads/ClassBrowser/Searchbar"> <Path name = "/SharpDevelop/Pads/ClassBrowser/Searchbar">
@ -988,6 +988,13 @@
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCancelSearch"/> class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCancelSearch"/>
</Path> </Path>
<Path name = "/SharpDevelop/Pads/ClassBrowser/AssemblyContextMenu">
<MenuItem id = "RemoveAssembly"
label = "Remove"
icon = "Icons.16x16.DeleteIcon"
class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.RemoveAssemblyCommand"/>
</Path>
<!-- end ClassBrowser --> <!-- end ClassBrowser -->
<!-- toolbars --> <!-- toolbars -->

2
src/Main/SharpDevelop/Dom/ClassBrowser/ClassBrowserPad.cs

@ -171,8 +171,6 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
public static IAssemblyModel CreateAssemblyModelFromFile(string fileName) public static IAssemblyModel CreateAssemblyModelFromFile(string fileName)
{ {
// TODO References?
var loader = new CecilLoader(); var loader = new CecilLoader();
loader.IncludeInternalMembers = true; loader.IncludeInternalMembers = true;
loader.LazyLoad = true; loader.LazyLoad = true;

43
src/Main/SharpDevelop/Dom/ClassBrowser/OpenAssemblyCommand.cs → src/Main/SharpDevelop/Dom/ClassBrowser/Commands.cs

@ -2,9 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.IO;
using System.Linq; using System.Linq;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.TypeSystem;
using Microsoft.Win32; using Microsoft.Win32;
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
@ -24,7 +23,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
openFileDialog.CheckPathExists = true; openFileDialog.CheckPathExists = true;
if (openFileDialog.ShowDialog() ?? false) if (openFileDialog.ShowDialog() ?? false)
{ {
try {
classBrowser.AssemblyList.Assemblies.Add(ClassBrowserPad.CreateAssemblyModelFromFile(openFileDialog.FileName)); classBrowser.AssemblyList.Assemblies.Add(ClassBrowserPad.CreateAssemblyModelFromFile(openFileDialog.FileName));
} catch (BadImageFormatException ex) {
SD.MessageService.ShowWarningFormatted("{0} is not a valid .NET assembly.", Path.GetFileName(openFileDialog.FileName));
}
} }
} }
} }
@ -37,7 +40,41 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
{ {
public override void Execute(object parameter) public override void Execute(object parameter)
{ {
throw new NotImplementedException(); // throw new NotImplementedException();
}
}
/// <summary>
/// Description of RemoveAssemblyCommand.
/// </summary>
class RemoveAssemblyCommand : SimpleCommand
{
public override bool CanExecute(object parameter)
{
return parameter is AssemblyModel;
}
public override void Execute(object parameter)
{
var classBrowser = SD.GetService<IClassBrowser>();
if (classBrowser != null) {
IAssemblyModel assemblyModel = (IAssemblyModel) parameter;
classBrowser.AssemblyList.Assemblies.Remove(assemblyModel);
}
}
}
/// <summary>
/// Description of RemoveAssemblyCommand.
/// </summary>
class ClassBrowserCollapseAllCommand : SimpleCommand
{
public override void Execute(object parameter)
{
// var classBrowser = SD.GetService<IClassBrowser>() as ClassBrowserPad;
// if (classBrowser != null) {
// classBrowser.TreeView
// }
} }
} }
} }

2
src/Main/SharpDevelop/SharpDevelop.csproj

@ -108,7 +108,7 @@
</Compile> </Compile>
<Compile Include="Dom\ClassBrowser\ClassBrowserPad.cs" /> <Compile Include="Dom\ClassBrowser\ClassBrowserPad.cs" />
<Compile Include="Dom\ClassBrowser\ClassBrowserTreeNodesFactory.cs" /> <Compile Include="Dom\ClassBrowser\ClassBrowserTreeNodesFactory.cs" />
<Compile Include="Dom\ClassBrowser\OpenAssemblyCommand.cs" /> <Compile Include="Dom\ClassBrowser\Commands.cs" />
<Compile Include="Dom\ModelFactory.cs" /> <Compile Include="Dom\ModelFactory.cs" />
<Compile Include="Dom\MemberModel.cs" /> <Compile Include="Dom\MemberModel.cs" />
<Compile Include="Dom\NamespaceModel.cs" /> <Compile Include="Dom\NamespaceModel.cs" />

Loading…
Cancel
Save