1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
5
using System.Collections.Generic;
7
using System.Windows.Forms;
9
using ICSharpCode.Core;
10
using ICSharpCode.SharpDevelop.Project.Commands;
12
namespace ICSharpCode.SharpDevelop.Project
15
/// Static factory methods for creating Directory nodes.
17
public static class DirectoryNodeFactory
20
public static DirectoryNode CreateDirectoryNode(TreeNode parent, IProject project, string directory)
22
DirectoryNode node = new DirectoryNode(directory);
23
if (!string.IsNullOrEmpty(project.AppDesignerFolder)
24
&& directory == Path.Combine(project.Directory, project.AppDesignerFolder))
26
node.SpecialFolder = SpecialFolder.AppDesigner;
27
} else if (DirectoryNode.IsWebReferencesFolder(project, directory)) {
28
node = new WebReferencesFolderNode(directory);
29
} else if (parent != null && parent is WebReferencesFolderNode) {
30
node = new WebReferenceNode(directory);
35
public static DirectoryNode CreateDirectoryNode(ProjectItem item, FileNodeStatus status)
38
if (item is WebReferencesProjectItem) {
39
node = new WebReferencesFolderNode((WebReferencesProjectItem)item);
40
node.FileNodeStatus = status;
42
node = new DirectoryNode(item.FileName.Trim('\\', '/'), status);
43
node.ProjectItem = item;