~halega/+junk/sharpdevelop

« back to all changes in this revision

Viewing changes to src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNodeFactory.cs

  • Committer: sk
  • Date: 2011-09-10 05:17:57 UTC
  • Revision ID: halega@halega.com-20110910051757-qfouz1llya9m6boy
4.1.0.7915 Release Candidate 1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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)
 
3
 
 
4
using System;
 
5
using System.Collections.Generic;
 
6
using System.IO;
 
7
using System.Windows.Forms;
 
8
 
 
9
using ICSharpCode.Core;
 
10
using ICSharpCode.SharpDevelop.Project.Commands;
 
11
 
 
12
namespace ICSharpCode.SharpDevelop.Project
 
13
{
 
14
        /// <summary>
 
15
        /// Static factory methods for creating Directory nodes.
 
16
        /// </summary>
 
17
        public static class DirectoryNodeFactory
 
18
        {
 
19
                
 
20
                public static DirectoryNode CreateDirectoryNode(TreeNode parent, IProject project, string directory)
 
21
                {
 
22
                        DirectoryNode node = new DirectoryNode(directory);
 
23
                        if (!string.IsNullOrEmpty(project.AppDesignerFolder)
 
24
                            && directory == Path.Combine(project.Directory, project.AppDesignerFolder))
 
25
                        {
 
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);
 
31
                        }
 
32
                        return node;
 
33
                }
 
34
                
 
35
                public static DirectoryNode CreateDirectoryNode(ProjectItem item, FileNodeStatus status)
 
36
                {
 
37
                        DirectoryNode node;
 
38
                        if (item is WebReferencesProjectItem) {
 
39
                                node = new WebReferencesFolderNode((WebReferencesProjectItem)item);
 
40
                                node.FileNodeStatus = status;
 
41
                        } else {
 
42
                                node = new DirectoryNode(item.FileName.Trim('\\', '/'), status);
 
43
                                node.ProjectItem = item;
 
44
                        }
 
45
                        return node;
 
46
                }
 
47
        }
 
48
}