Browse Source

Context menu for removing assemblies from ClassBrowser workspace.

newNRILSpyDebugger
Andreas Weizel 12 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 @@ @@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using ICSharpCode.Core.Presentation;
using ICSharpCode.TreeView;
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
@ -46,6 +47,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -46,6 +47,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
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 @@ @@ -908,7 +908,7 @@
<!-- ClassBrowser -->
<Path name = "/SharpDevelop/Pads/ClassBrowser/Toolbar">
<ToolbarItem id = "Back"
<!--<ToolbarItem id = "Back"
icon = "Icons.16x16.BrowserBefore"
tooltip = "${res:MainWindow.Windows.ClassBrowser.BackButton.ToolTip}"
loadclasslazy = "false"
@ -919,7 +919,7 @@ @@ -919,7 +919,7 @@
loadclasslazy = "false"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateForward"/>
<ToolbarItem id = "NavigationSeparator" type = "Separator"/>
<ToolbarItem id = "NavigationSeparator" type = "Separator"/>-->
<ToolbarItem id = "OpenAssembly"
type = "DropDownButton"
icon = "Icons.16x16.Assembly"
@ -927,13 +927,13 @@ @@ -927,13 +927,13 @@
<MenuItem id = "OpenAssemblyFromFile"
icon = "Icons.16x16.AssemblyFromFile"
label = "Open assembly from file"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.OpenAssemblyFromFileCommand"/>
class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.OpenAssemblyFromFileCommand"/>
<MenuItem id = "OpenAssemblyFromGAC"
icon = "Icons.16x16.AssemblyFromGAC"
label = "Open assembly from GAC"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.OpenAssemblyFromGACCommand"/>
class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.OpenAssemblyFromGACCommand"/>
</ToolbarItem>
<ToolbarItem id = "SelectFilter"
<!--<ToolbarItem id = "SelectFilter"
type = "DropDownButton"
icon = "Icons.16x16.FindInFiles"
tooltip = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettingsButton.ToolTip}"
@ -968,7 +968,7 @@ @@ -968,7 +968,7 @@
<ToolbarItem id = "Collapse"
icon = "Icons.16x16.Collection"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCollapseAll"/>
class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.ClassBrowserCollapseAll"/>-->
</Path>
<Path name = "/SharpDevelop/Pads/ClassBrowser/Searchbar">
@ -988,6 +988,13 @@ @@ -988,6 +988,13 @@
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCancelSearch"/>
</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 -->
<!-- toolbars -->

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

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

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

@ -2,9 +2,8 @@ @@ -2,9 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.IO;
using System.Linq;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.TypeSystem;
using Microsoft.Win32;
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
@ -24,7 +23,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -24,7 +23,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
openFileDialog.CheckPathExists = true;
if (openFileDialog.ShowDialog() ?? false)
{
try {
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 @@ -37,7 +40,41 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
{
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 @@ @@ -108,7 +108,7 @@
</Compile>
<Compile Include="Dom\ClassBrowser\ClassBrowserPad.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\MemberModel.cs" />
<Compile Include="Dom\NamespaceModel.cs" />

Loading…
Cancel
Save