Browse Source

Applied ProjectNodeBuilder patch from Scott Ferret.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@703 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
39d44d19db
  1. 5
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  3. 2
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs
  4. 35
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/NodeBuilder/NodeBuilders.cs
  5. 3
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
  6. 3
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs

5
AddIns/ICSharpCode.SharpDevelop.addin

@ -1913,4 +1913,9 @@ @@ -1913,4 +1913,9 @@
class = "ICSharpCode.SharpDevelop.Commands.DebugViewMenuBuilder"/>
</MenuItem>
</Path>
<Path name = "/SharpDevelop/Views/ProjectBrowser/NodeBuilders">
<Class id = "DefaultBuilder"
class = "ICSharpCode.SharpDevelop.Project.DefaultDotNetNodeBuilder"/>
</Path>
</AddIn>

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

@ -720,6 +720,7 @@ @@ -720,6 +720,7 @@
<Compile Include="Src\Gui\TreeGrid\ScrollButton.cs" />
<Compile Include="Src\Gui\TreeGrid\VerticalScrollContainer.cs" />
<Compile Include="Src\Services\Debugger\DebuggerGridControl.cs" />
<Compile Include="Src\Gui\Pads\ProjectBrowser\NodeBuilder\NodeBuilders.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj">

2
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs

@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
}
newProject.Location = FileUtility.GetRelativePath(solutionFolderNode.Solution.Directory, fileName);
solutionFolderNode.Container.AddFolder(newProject);
new DefaultDotNetNodeBuilder().AddProjectNode((TreeNode)solutionFolderNode, newProject).EnsureVisible();
NodeBuilders.AddProjectNode((TreeNode)solutionFolderNode, newProject).EnsureVisible();
}
public override void Run()

35
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/NodeBuilder/NodeBuilders.cs

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="none" email=""/>
// <version>$Revision$</version>
// </file>
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Project
{
public static class NodeBuilders
{
/// <summary>
/// This method builds a ProjectBrowserNode Tree out of a given combine.
/// </summary>
public static TreeNode AddProjectNode(TreeNode motherNode, IProject project)
{
IProjectNodeBuilder projectNodeBuilder = null;
foreach (IProjectNodeBuilder nodeBuilder in AddInTree.BuildItems("/SharpDevelop/Views/ProjectBrowser/NodeBuilders", null, true)) {
if (nodeBuilder.CanBuildProjectTree(project)) {
projectNodeBuilder = nodeBuilder;
break;
}
}
if (projectNodeBuilder != null) {
return projectNodeBuilder.AddProjectNode(motherNode, project);
}
throw new NotImplementedException("can't create node builder for project type " + project.Language);
}
}
}

3
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs

@ -148,11 +148,10 @@ namespace ICSharpCode.SharpDevelop.Project @@ -148,11 +148,10 @@ namespace ICSharpCode.SharpDevelop.Project
AbstractProjectBrowserTreeNode solutionNode = new SolutionNode(solution);
treeView.Nodes.Clear();
solutionNode.AddTo(treeView);
DefaultDotNetNodeBuilder nodeBuilder = new DefaultDotNetNodeBuilder();
foreach (object treeObject in solution.Folders) {
if (treeObject is IProject) {
nodeBuilder.AddProjectNode(solutionNode, (IProject)treeObject);
NodeBuilders.AddProjectNode(solutionNode, (IProject)treeObject);
} else {
SolutionFolderNode folderNode = new SolutionFolderNode(solution, (SolutionFolder)treeObject);
folderNode.AddTo(solutionNode);

3
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs

@ -94,11 +94,10 @@ namespace ICSharpCode.SharpDevelop.Project @@ -94,11 +94,10 @@ namespace ICSharpCode.SharpDevelop.Project
protected override void Initialize()
{
Nodes.Clear();
DefaultDotNetNodeBuilder nodeBuilder = new DefaultDotNetNodeBuilder();
foreach (object treeObject in folder.Folders) {
if (treeObject is IProject) {
nodeBuilder.AddProjectNode(this, (IProject)treeObject);
NodeBuilders.AddProjectNode(this, (IProject)treeObject);
} else if (treeObject is SolutionFolder) {
SolutionFolderNode folderNode = new SolutionFolderNode(solution, (SolutionFolder)treeObject);
folderNode.AddTo(this);

Loading…
Cancel
Save