Browse Source

Class Browser now supports node builders (based on patch by Robert Zaunere)

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1256 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
b26a42e1ac
  1. 34
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 18
      src/AddIns/Misc/SubversionAddIn/Project/Configuration/AssemblyInfo.cs
  3. 3
      src/AddIns/Misc/SubversionAddIn/Project/SubversionAddIn.csproj
  4. 2
      src/AddIns/Misc/UnitTesting/Src/TestableCondition.cs
  5. 8
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  6. 19
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs
  7. 56
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowserToolbarCommands.cs
  8. 33
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/ClassNodeBuilders.cs
  9. 24
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/DefaultClassNodeBuilder.cs
  10. 23
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/DefaultProjectNodeBuilder.cs
  11. 13
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/IClassNodeBuilder.cs
  12. 12
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/IProjectNodeBuilder.cs
  13. 32
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/ProjectNodeBuilders.cs
  14. 32
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/AbstractProjectNode.cs
  15. 4
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/BaseTypesNode.cs
  16. 2
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ClassNode.cs
  17. 4
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/DerivedTypesNode.cs
  18. 4
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/MemberNode.cs
  19. 41
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs
  20. 4
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs
  21. 1
      src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs
  22. 1
      src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs
  23. 1
      src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs

34
AddIns/ICSharpCode.SharpDevelop.addin

@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
title = "${res:MainWindow.Windows.ClassScoutLabel}"
icon = "PadIcons.ClassBrowser"
shortcut = "Control|Shift|C"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserPad"/>
<Pad id = "SideBar"
category = "Main"
@ -670,43 +670,43 @@ @@ -670,43 +670,43 @@
<ToolbarItem id = "Back"
icon = "Icons.16x16.BrowserBefore"
tooltip = "${res:MainWindow.Windows.ClassBrowser.BackButton.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowserNavigateBackward"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateBackward"/>
<ToolbarItem id = "Forward"
icon = "Icons.16x16.BrowserAfter"
tooltip = "${res:MainWindow.Windows.ClassBrowser.ForwardButton.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowserNavigateForward"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateForward"/>
<ToolbarItem id = "NavigationSeparator" type = "Separator"/>
<ToolbarItem id = "SelectFilter"
type = "DropDownButton"
icon = "Icons.16x16.FindInFiles"
tooltip = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettingsButton.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.SelectClassBrowserFilter">
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.SelectClassBrowserFilter">
<MenuItem id = "ShowProjectReferences"
type = "CheckBox"
label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowProjectReferences.Label}"
class = "ICSharpCode.SharpDevelop.Gui.ShowProjectReferences"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowProjectReferences"/>
<MenuItem id = "ReferenceSeparator" type = "Separator" />
<MenuItem id = "ShowPublicMembers"
type = "CheckBox"
label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowPublicMembers.Label}"
class = "ICSharpCode.SharpDevelop.Gui.ShowPublicMembers"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowPublicMembers"/>
<MenuItem id = "ShowPrivateMembers"
type = "CheckBox"
label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowPrivateMembers.Label}"
class = "ICSharpCode.SharpDevelop.Gui.ShowPrivateMembers"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowPrivateMembers"/>
<MenuItem id = "ShowProtectedMembers"
type = "CheckBox"
label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowProtectedMembers.Label}"
class = "ICSharpCode.SharpDevelop.Gui.ShowProtectedMembers"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowProtectedMembers"/>
<MenuItem id = "ShowOtherMembers"
type = "CheckBox"
label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowOtherMembers.Label}"
class = "ICSharpCode.SharpDevelop.Gui.ShowOtherMembers"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowOtherMembers"/>
</ToolbarItem>
</Path>
@ -714,17 +714,17 @@ @@ -714,17 +714,17 @@
<ToolbarItem id = "Search"
type = "ComboBox"
tooltip = "${res:MainWindow.Windows.ClassBrowser.SearchButton.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowserSearchTerm"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserSearchTerm"/>
<ToolbarItem id = "CommitSearch"
icon = "Icons.16x16.FindIcon"
tooltip = "${res:MainWindow.Windows.ClassBrowser.CommitSearch.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowserCommitSearch"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCommitSearch"/>
<ToolbarItem id = "CancelSearch"
icon = "OutputPad.Toolbar.ClearOutputWindow"
tooltip = "${res:MainWindow.Windows.ClassBrowser.ClearSearch.ToolTip}"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowserCancelSearch"/>
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCancelSearch"/>
</Path>
<!-- end ClassBrowser -->
@ -2060,6 +2060,16 @@ @@ -2060,6 +2060,16 @@
<Class id = "DefaultBuilder"
class = "ICSharpCode.SharpDevelop.Project.DefaultDotNetNodeBuilder"/>
</Path>
<Path name = "/SharpDevelop/Views/ClassBrowser/ProjectNodeBuilders">
<Class id = "DefaultProjectBuilder"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.DefaultProjectNodeBuilder"/>
</Path>
<Path name = "/SharpDevelop/Views/ClassBrowser/ClassNodeBuilders">
<Class id = "DefaultClassBuilder"
class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.DefaultClassNodeBuilder"/>
</Path>
<Path name = "/AddIns/DefaultTextEditor/CodeGenerator">
<Class id="ConstructorCodeGenerator"

18
src/AddIns/Misc/SubversionAddIn/Project/Configuration/AssemblyInfo.cs

@ -17,23 +17,5 @@ using System.Runtime.CompilerServices; @@ -17,23 +17,5 @@ using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("SubversionAddin")]
[assembly: AssemblyDescription("Adds subversion support to SharpDevelop")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("www.icsharpcode.net")]
[assembly: AssemblyProduct("SharpDevelop")]
[assembly: AssemblyCopyright("(c) Mike Krüger, 2005; Daniel Grunwald, 2005")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("2.0.0.1")]
// The following attributes specify the key for the sign of your assembly. See the
// .NET Framework documentation for more information about signing.
// This is not required, if you don't want signing let these attributes like they're.
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]

3
src/AddIns/Misc/SubversionAddIn/Project/SubversionAddIn.csproj

@ -91,6 +91,9 @@ @@ -91,6 +91,9 @@
<Compile Include="Src\Gui\TortoiseSvnNotFoundForm.cs" />
<Compile Include="Src\Commands\CheckoutCommands.cs" />
<Compile Include="Src\SubversionStateCondition.cs" />
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs">
<Link>Configuration\GlobalAssemblyInfo.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">

2
src/AddIns/Misc/UnitTesting/Src/TestableCondition.cs

@ -12,7 +12,7 @@ using System.Windows.Forms; @@ -12,7 +12,7 @@ using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.ClassBrowser;
namespace ICSharpCode.UnitTesting
{

8
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -757,6 +757,13 @@ @@ -757,6 +757,13 @@
</Compile>
<Compile Include="Src\Gui\Dialogs\OptionPanels\IDEOptions\ProjectAndSolutionOptionsPanel.cs" />
<EmbeddedResource Include="Resources\ProjectAndSolutionOptionsPanel.xfrm" />
<Compile Include="Src\Gui\Pads\ClassBrowser\Nodes\AbstractProjectNode.cs" />
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\ClassNodeBuilders.cs" />
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\DefaultClassNodeBuilder.cs" />
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\DefaultProjectNodeBuilder.cs" />
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\ProjectNodeBuilders.cs" />
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\IClassNodeBuilder.cs" />
<Compile Include="Src\Gui\Pads\ClassBrowser\NodeBuilder\IProjectNodeBuilder.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj">
@ -782,6 +789,7 @@ @@ -782,6 +789,7 @@
<Link>ICSharpCode.SharpDevelop.addin</Link>
</Content>
<Folder Include="Src\Util" />
<Folder Include="Src\Gui\Pads\ClassBrowser\NodeBuilder" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>

19
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs

@ -21,10 +21,11 @@ using ICSharpCode.Core; @@ -21,10 +21,11 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
[Flags]
public enum ClassBrowserFilter {
public enum ClassBrowserFilter
{
None = 0,
ShowProjectReferences = 1,
ShowBaseAndDerivedTypes = 32,
@ -37,12 +38,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -37,12 +38,12 @@ namespace ICSharpCode.SharpDevelop.Gui
All = ShowProjectReferences | ShowPublic | ShowProtected | ShowPrivate | ShowOther | ShowBaseAndDerivedTypes
}
public class ClassBrowser : AbstractPadContent
public class ClassBrowserPad : AbstractPadContent
{
static ClassBrowser instance;
static ClassBrowserPad instance;
public static ClassBrowser Instance {
public static ClassBrowserPad Instance {
get {
return instance;
}
@ -79,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -79,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Gui
ToolbarService.UpdateToolbar(searchStrip);
}
public ClassBrowser()
public ClassBrowserPad()
{
instance = this;
classBrowserTreeView.Dock = DockStyle.Fill;
@ -117,7 +118,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -117,7 +118,7 @@ namespace ICSharpCode.SharpDevelop.Gui
lock (pending) {
foreach (ICompilationUnit[] units in pending) {
foreach (TreeNode node in classBrowserTreeView.Nodes) {
ProjectNode prjNode = node as ProjectNode;
AbstractProjectNode prjNode = node as AbstractProjectNode;
ICompilationUnit nonNullUnit = units[1] ?? units[0];
IProject project = nonNullUnit.ProjectContent.Project;
if (prjNode != null && prjNode.Project.IsFileInProject(nonNullUnit.FileName)) {
@ -245,7 +246,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -245,7 +246,7 @@ namespace ICSharpCode.SharpDevelop.Gui
if (projectContent != null) {
foreach (IClass c in projectContent.Classes) {
if (c.Name.ToUpper().StartsWith(searchTerm)) {
new ClassNode(project, c).AddTo(classBrowserTreeView);
ClassNodeBuilders.AddClassNode(classBrowserTreeView, project, c);
}
}
}
@ -282,7 +283,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -282,7 +283,7 @@ namespace ICSharpCode.SharpDevelop.Gui
if (project is MissingProject || project is UnknownProject) {
continue;
}
new ProjectNode(project).AddTo(classBrowserTreeView);
ProjectNodeBuilders.AddProjectNode(classBrowserTreeView, project);
}
}

56
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowserToolbarCommands.cs

@ -15,18 +15,18 @@ using System.Diagnostics; @@ -15,18 +15,18 @@ using System.Diagnostics;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public class ClassBrowserNavigateBackward : AbstractMenuCommand
{
public override bool IsEnabled {
get {
return ClassBrowser.Instance.CanNavigateBackward;
return ClassBrowserPad.Instance.CanNavigateBackward;
}
}
public override void Run()
{
ClassBrowser.Instance.NavigateBackward();
ClassBrowserPad.Instance.NavigateBackward();
}
}
@ -34,12 +34,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -34,12 +34,12 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsEnabled {
get {
return ClassBrowser.Instance.CanNavigateForward;
return ClassBrowserPad.Instance.CanNavigateForward;
}
}
public override void Run()
{
ClassBrowser.Instance.NavigateForward();
ClassBrowserPad.Instance.NavigateForward();
}
}
@ -71,13 +71,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -71,13 +71,13 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsChecked {
get {
return (ClassBrowser.Instance.Filter & ClassBrowserFilter.ShowBaseAndDerivedTypes) == ClassBrowserFilter.ShowBaseAndDerivedTypes;
return (ClassBrowserPad.Instance.Filter & ClassBrowserFilter.ShowBaseAndDerivedTypes) == ClassBrowserFilter.ShowBaseAndDerivedTypes;
}
set {
if (value) {
ClassBrowser.Instance.Filter |= ClassBrowserFilter.ShowBaseAndDerivedTypes;
ClassBrowserPad.Instance.Filter |= ClassBrowserFilter.ShowBaseAndDerivedTypes;
} else {
ClassBrowser.Instance.Filter &= ~ClassBrowserFilter.ShowBaseAndDerivedTypes;
ClassBrowserPad.Instance.Filter &= ~ClassBrowserFilter.ShowBaseAndDerivedTypes;
}
}
}
@ -88,13 +88,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -88,13 +88,13 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsChecked {
get {
return (ClassBrowser.Instance.Filter & ClassBrowserFilter.ShowProjectReferences) == ClassBrowserFilter.ShowProjectReferences;
return (ClassBrowserPad.Instance.Filter & ClassBrowserFilter.ShowProjectReferences) == ClassBrowserFilter.ShowProjectReferences;
}
set {
if (value) {
ClassBrowser.Instance.Filter |= ClassBrowserFilter.ShowProjectReferences;
ClassBrowserPad.Instance.Filter |= ClassBrowserFilter.ShowProjectReferences;
} else {
ClassBrowser.Instance.Filter &= ~ClassBrowserFilter.ShowProjectReferences;
ClassBrowserPad.Instance.Filter &= ~ClassBrowserFilter.ShowProjectReferences;
}
}
}
@ -104,13 +104,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -104,13 +104,13 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsChecked {
get {
return (ClassBrowser.Instance.Filter & ClassBrowserFilter.ShowPublic) == ClassBrowserFilter.ShowPublic;
return (ClassBrowserPad.Instance.Filter & ClassBrowserFilter.ShowPublic) == ClassBrowserFilter.ShowPublic;
}
set {
if (value) {
ClassBrowser.Instance.Filter |= ClassBrowserFilter.ShowPublic;
ClassBrowserPad.Instance.Filter |= ClassBrowserFilter.ShowPublic;
} else {
ClassBrowser.Instance.Filter &= ~ClassBrowserFilter.ShowPublic;
ClassBrowserPad.Instance.Filter &= ~ClassBrowserFilter.ShowPublic;
}
}
}
@ -120,13 +120,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -120,13 +120,13 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsChecked {
get {
return (ClassBrowser.Instance.Filter & ClassBrowserFilter.ShowProtected) == ClassBrowserFilter.ShowProtected;
return (ClassBrowserPad.Instance.Filter & ClassBrowserFilter.ShowProtected) == ClassBrowserFilter.ShowProtected;
}
set {
if (value) {
ClassBrowser.Instance.Filter |= ClassBrowserFilter.ShowProtected;
ClassBrowserPad.Instance.Filter |= ClassBrowserFilter.ShowProtected;
} else {
ClassBrowser.Instance.Filter &= ~ClassBrowserFilter.ShowProtected;
ClassBrowserPad.Instance.Filter &= ~ClassBrowserFilter.ShowProtected;
}
}
}
@ -136,13 +136,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -136,13 +136,13 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsChecked {
get {
return (ClassBrowser.Instance.Filter & ClassBrowserFilter.ShowPrivate) == ClassBrowserFilter.ShowPrivate;
return (ClassBrowserPad.Instance.Filter & ClassBrowserFilter.ShowPrivate) == ClassBrowserFilter.ShowPrivate;
}
set {
if (value) {
ClassBrowser.Instance.Filter |= ClassBrowserFilter.ShowPrivate;
ClassBrowserPad.Instance.Filter |= ClassBrowserFilter.ShowPrivate;
} else {
ClassBrowser.Instance.Filter &= ~ClassBrowserFilter.ShowPrivate;
ClassBrowserPad.Instance.Filter &= ~ClassBrowserFilter.ShowPrivate;
}
}
}
@ -152,13 +152,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -152,13 +152,13 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsChecked {
get {
return (ClassBrowser.Instance.Filter & ClassBrowserFilter.ShowOther) == ClassBrowserFilter.ShowOther;
return (ClassBrowserPad.Instance.Filter & ClassBrowserFilter.ShowOther) == ClassBrowserFilter.ShowOther;
}
set {
if (value) {
ClassBrowser.Instance.Filter |= ClassBrowserFilter.ShowOther;
ClassBrowserPad.Instance.Filter |= ClassBrowserFilter.ShowOther;
} else {
ClassBrowser.Instance.Filter &= ~ClassBrowserFilter.ShowOther;
ClassBrowserPad.Instance.Filter &= ~ClassBrowserFilter.ShowOther;
}
}
}
@ -183,13 +183,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -183,13 +183,13 @@ namespace ICSharpCode.SharpDevelop.Gui
void ComboBoxTextChanged(object sender, EventArgs e)
{
ClassBrowser.Instance.SearchTerm = comboBox.Text;
ClassBrowserPad.Instance.SearchTerm = comboBox.Text;
Run(); // TODO: Enable live search via option
}
public override void Run()
{
ClassBrowser.Instance.StartSearch();
ClassBrowserPad.Instance.StartSearch();
}
}
@ -197,7 +197,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -197,7 +197,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override void Run()
{
ClassBrowser.Instance.StartSearch();
ClassBrowserPad.Instance.StartSearch();
}
}
@ -205,12 +205,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -205,12 +205,12 @@ namespace ICSharpCode.SharpDevelop.Gui
{
public override bool IsEnabled {
get {
return ClassBrowser.Instance.IsInSearchMode;
return ClassBrowserPad.Instance.IsInSearchMode;
}
}
public override void Run()
{
ClassBrowser.Instance.CancelSearch();
ClassBrowserPad.Instance.CancelSearch();
}
}
#endregion

33
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/ClassNodeBuilders.cs

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public static class ClassNodeBuilders
{
/// <summary>
/// This method builds a ClassBrowserNode Tree out of a given combine.
/// </summary>
public static TreeNode AddClassNode(ExtTreeView classBrowser, IProject project, IClass c)
{
IClassNodeBuilder classNodeBuilder = null;
foreach (IClassNodeBuilder nodeBuilder in AddInTree.BuildItems("/SharpDevelop/Views/ClassBrowser/ClassNodeBuilders", null, true))
{
if (nodeBuilder.CanBuildClassTree(c))
{
classNodeBuilder = nodeBuilder;
break;
}
}
if (classNodeBuilder != null)
{
return classNodeBuilder.AddClassNode(classBrowser, project, c);
}
throw new NotImplementedException("Can't create node builder for class " + c.Name);
}
}
}

24
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/DefaultClassNodeBuilder.cs

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
using System;
using System.IO;
using ICSharpCode.Core;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public class DefaultClassNodeBuilder : IClassNodeBuilder
{
public bool CanBuildClassTree(IClass c)
{
return true;
}
public TreeNode AddClassNode(ExtTreeView classBrowser, IProject project, IClass c)
{
ClassNode cNode = new ClassNode(project, c);
cNode.AddTo(classBrowser);
return cNode;
}
}
}

23
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/DefaultProjectNodeBuilder.cs

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
using System;
using System.IO;
using ICSharpCode.Core;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public class DefaultProjectNodeBuilder : IProjectNodeBuilder
{
public bool CanBuildProjectTree(IProject project)
{
return true;
}
public TreeNode AddProjectNode(ExtTreeView classBrowser, IProject project)
{
ProjectNode prjNode = new ProjectNode(project);
prjNode.AddTo(classBrowser);
return prjNode;
}
}
}

13
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/IClassNodeBuilder.cs

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
using System;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public interface IClassNodeBuilder
{
bool CanBuildClassTree(IClass c);
TreeNode AddClassNode(ExtTreeView classBrowser, IProject project, IClass c);
}
}

12
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/IProjectNodeBuilder.cs

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
using System;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public interface IProjectNodeBuilder
{
bool CanBuildProjectTree(IProject project);
TreeNode AddProjectNode(ExtTreeView classBrowser, IProject project);
}
}

32
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/NodeBuilder/ProjectNodeBuilders.cs

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public static class ProjectNodeBuilders
{
/// <summary>
/// This method builds a ClassBrowserNode Tree out of a given combine.
/// </summary>
public static TreeNode AddProjectNode(ExtTreeView classBrowser, IProject project)
{
IProjectNodeBuilder projectNodeBuilder = null;
foreach (IProjectNodeBuilder nodeBuilder in AddInTree.BuildItems("/SharpDevelop/Views/ClassBrowser/ProjectNodeBuilders", null, true))
{
if (nodeBuilder.CanBuildProjectTree(project))
{
projectNodeBuilder = nodeBuilder;
break;
}
}
if (projectNodeBuilder != null)
{
return projectNodeBuilder.AddProjectNode(classBrowser, project);
}
throw new NotImplementedException("can't create node builder for project type " + project.Language);
}
}
}

32
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/AbstractProjectNode.cs

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
using System;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public abstract class AbstractProjectNode : ExtTreeNode
{
IProject project;
public IProject Project {
get {
return project;
}
}
protected AbstractProjectNode()
{
this.project = null;
}
public AbstractProjectNode(IProject project)
{
this.project = project;
}
public abstract void UpdateParseInformation(ICompilationUnit oldUnit, ICompilationUnit unit);
public abstract TreeNode GetNodeByPath(string directory, bool create);
}
}

4
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/BaseTypesNode.cs

@ -17,7 +17,7 @@ using ICSharpCode.Core; @@ -17,7 +17,7 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
/// <summary>
/// This class reperesents the base class for all nodes in the
@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public override bool Visible {
get {
ClassBrowserFilter filter = ClassBrowser.Instance.Filter;
ClassBrowserFilter filter = ClassBrowserPad.Instance.Filter;
return (filter & ClassBrowserFilter.ShowBaseAndDerivedTypes) != 0;
}
}

2
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ClassNode.cs

@ -16,7 +16,7 @@ using ICSharpCode.Core; @@ -16,7 +16,7 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
/// <summary>
/// This class reperesents the base class for all nodes in the

4
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/DerivedTypesNode.cs

@ -18,7 +18,7 @@ using ICSharpCode.SharpDevelop.Dom; @@ -18,7 +18,7 @@ using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
/// <summary>
/// This class reperesents the base class for all nodes in the
@ -31,7 +31,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -31,7 +31,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public override bool Visible {
get {
ClassBrowserFilter filter = ClassBrowser.Instance.Filter;
ClassBrowserFilter filter = ClassBrowserPad.Instance.Filter;
return (filter & ClassBrowserFilter.ShowBaseAndDerivedTypes) != 0;
}
}

4
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/MemberNode.cs

@ -16,7 +16,7 @@ using ICSharpCode.Core; @@ -16,7 +16,7 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
public class MemberNode : ExtTreeNode
{
@ -35,7 +35,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -35,7 +35,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
public override bool Visible {
get {
ClassBrowserFilter filter = ClassBrowser.Instance.Filter;
ClassBrowserFilter filter = ClassBrowserPad.Instance.Filter;
if ((modifiers & ModifierEnum.Public) != 0) {
return (filter & ClassBrowserFilter.ShowPublic) != 0;
}

41
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs

@ -16,37 +16,28 @@ using ICSharpCode.Core; @@ -16,37 +16,28 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
/// <summary>
/// This class reperesents the base class for all nodes in the
/// class browser.
/// </summary>
public class ProjectNode : ExtTreeNode
public class ProjectNode : AbstractProjectNode
{
IProject project;
public IProject Project {
get {
return project;
}
}
protected ProjectNode()
protected ProjectNode() : base()
{
}
public ProjectNode(IProject project)
public ProjectNode(IProject project) : base(project)
{
sortOrder = 0;
this.project = project;
Text = project.Name;
SetIcon(IconService.GetImageForProjectType(project.Language));
Text = Project.Name;
SetIcon(IconService.GetImageForProjectType(Project.Language));
Nodes.Add(new TreeNode(StringParser.Parse("${res:ICSharpCode.SharpDevelop.Gui.Pads.ClassScout.LoadingNode}")));
}
public void UpdateParseInformation(ICompilationUnit oldUnit, ICompilationUnit unit)
public override void UpdateParseInformation(ICompilationUnit oldUnit, ICompilationUnit unit)
{
Dictionary<string, IClass> classDictionary = new Dictionary<string, IClass>();
Dictionary<string, bool> wasUpdatedDictionary = new Dictionary<string, bool>();
@ -64,7 +55,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -64,7 +55,7 @@ namespace ICSharpCode.SharpDevelop.Gui
if (node != null) {
node.Class = c;
} else {
new ClassNode(project, c).AddTo(path);
new ClassNode(Project, c).AddTo(path);
}
wasUpdatedDictionary[c.FullyQualifiedName] = true;
}
@ -95,14 +86,14 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -95,14 +86,14 @@ namespace ICSharpCode.SharpDevelop.Gui
protected override void Initialize()
{
base.Initialize();
IProjectContent projectContent = ParserService.GetProjectContent(project);
IProjectContent projectContent = ParserService.GetProjectContent(Project);
if (projectContent != null) {
Nodes.Clear();
ReferenceFolderNode referencesNode = new ReferenceFolderNode(project);
ReferenceFolderNode referencesNode = new ReferenceFolderNode(Project);
referencesNode.AddTo(this);
projectContent.ReferencedContentsChanged += delegate { referencesNode.UpdateReferenceNodes(); };
foreach (ProjectItem item in project.Items) {
foreach (ProjectItem item in Project.Items) {
switch (item.ItemType) {
case ItemType.Reference:
break;
@ -121,23 +112,23 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -121,23 +112,23 @@ namespace ICSharpCode.SharpDevelop.Gui
{
foreach (IClass c in unit.Classes) {
TreeNode node = GetNodeByPath(c.Namespace, true);
new ClassNode(project, c).AddTo(node);
new ClassNode(Project, c).AddTo(node);
}
}
protected virtual string StripRootNamespace(string directory)
{
if (project != null) {
if (Project != null) {
// TODO: Give user the option to always show the root namespace
string rootNamespace = project.RootNamespace;
string rootNamespace = Project.RootNamespace;
if (directory.StartsWith(rootNamespace)) {
directory = directory.Substring(rootNamespace.Length);
}
}
return directory;
}
public TreeNode GetNodeByPath(string directory, bool create)
public override TreeNode GetNodeByPath(string directory, bool create)
{
directory = StripRootNamespace(directory);

4
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ReferenceFolderNode.cs

@ -17,7 +17,7 @@ using ICSharpCode.Core; @@ -17,7 +17,7 @@ using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
{
/// <summary>
/// This class reperesents the base class for all nodes in the
@ -35,7 +35,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -35,7 +35,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public override bool Visible {
get {
ClassBrowserFilter filter = ClassBrowser.Instance.Filter;
ClassBrowserFilter filter = ClassBrowserPad.Instance.Filter;
return (filter & ClassBrowserFilter.ShowProjectReferences) != 0;
}
}

1
src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs

@ -14,6 +14,7 @@ using ICSharpCode.SharpDevelop; @@ -14,6 +14,7 @@ using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.ClassBrowser;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;

1
src/Main/Base/Project/Src/TextEditor/Commands/ClassBookmarkMenuBuilder.cs

@ -17,6 +17,7 @@ using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor; @@ -17,6 +17,7 @@ using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.ClassBrowser;
using SearchAndReplace;
using ICSharpCode.SharpDevelop.DefaultEditor.Commands;
using ICSharpCode.SharpDevelop.Refactoring;

1
src/Main/Base/Project/Src/TextEditor/Commands/ClassMemberMenuBuilder.cs

@ -17,6 +17,7 @@ using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor; @@ -17,6 +17,7 @@ using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.ClassBrowser;
using SearchAndReplace;
using ICSharpCode.SharpDevelop.Refactoring;

Loading…
Cancel
Save