diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin
index 0788ce921d..25b759b018 100644
--- a/AddIns/ICSharpCode.SharpDevelop.addin
+++ b/AddIns/ICSharpCode.SharpDevelop.addin
@@ -1913,4 +1913,9 @@
class = "ICSharpCode.SharpDevelop.Commands.DebugViewMenuBuilder"/>
+
+
+
+
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index 41880d19ec..a9e3882ac5 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -720,6 +720,7 @@
+
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs
index af25fb9abe..bf1e6aef5a 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs
@@ -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()
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/NodeBuilder/NodeBuilders.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/NodeBuilder/NodeBuilders.cs
new file mode 100644
index 0000000000..4f9f2b7fdc
--- /dev/null
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/NodeBuilder/NodeBuilders.cs
@@ -0,0 +1,35 @@
+//
+// 2002-2005 AlphaSierraPapa
+// GNU General Public License
+//
+// $Revision$
+//
+
+using System;
+using System.Windows.Forms;
+using ICSharpCode.Core;
+
+namespace ICSharpCode.SharpDevelop.Project
+{
+ public static class NodeBuilders
+ {
+ ///
+ /// This method builds a ProjectBrowserNode Tree out of a given combine.
+ ///
+ 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);
+ }
+ }
+}
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
index 999ee6bf33..9e8789916b 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
@@ -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);
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs
index be680633da..15a2a5cf34 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs
@@ -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);