Ejemplo n.º 1
0
        FileProjectItem CreateNewFile(DirectoryNode upper, string fileName)
        {
            upper.Expanding();

            FileNode fileNode = new FileNode(fileName, FileNodeStatus.InProject);

            fileNode.AddTo(upper);
            fileNode.EnsureVisible();
            return(IncludeFileInProject.IncludeFileNode(fileNode));
        }
Ejemplo n.º 2
0
        public static void AddDependentItemsToProject(Func <IEnumerable <FileProjectItem> > itemAdder)
        {
            DirectoryNode dir = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedDirectoryNode;

            if (dir == null)
            {
                return;
            }

            FileNode fileNode = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode as FileNode;

            if (fileNode == null)
            {
                LoggingService.Warn("ProjectBrowser: AddNewDependentItemsToProject called on node that is not a FileNode, but: " + fileNode);
                return;
            }

            LoggingService.Debug("ProjectBrowser: AddNewDependentItemsToProject on '" + fileNode.FileName + "'");

            // Attention: base.AddNewItems may recreate the subnodes,
            // thus invalidating fileNode.
            var addedItems = itemAdder();

            if (addedItems == null)
            {
                return;
            }

            fileNode = dir.AllNodes.OfType <FileNode>().Single(node => FileUtility.IsEqualFileName(node.FileName, fileNode.FileName));

            // Find the file nodes that correspond to the added items which
            // do not already have a dependency.
            var dict = addedItems
                       .Where(fpi => String.IsNullOrEmpty(fpi.DependentUpon))
                       .ToDictionary(
                fpi => dir.AllNodes.OfType <FileNode>().Single(
                    node => node.ProjectItem == fpi
                    )
                );

            if (dict.Count == 0)
            {
                return;
            }

            foreach (KeyValuePair <FileNode, FileProjectItem> pair in dict)
            {
                LoggingService.Debug("ProjectBrowser: AddNewDependentItemsToProject: Creating dependency for '" + pair.Value.FileName + "' upon '" + fileNode.FileName + "'");
                pair.Value.DependentUpon = Path.GetFileName(fileNode.FileName);
                pair.Key.Remove();
                pair.Key.FileNodeStatus = FileNodeStatus.BehindFile;
                pair.Key.InsertSorted(fileNode);
            }

            fileNode.Project.Save();

            FileNode primaryAddedNode = dict.Keys.First();

            primaryAddedNode.EnsureVisible();
            primaryAddedNode.TreeView.SelectedNode = primaryAddedNode;
        }
Ejemplo n.º 3
0
		FileProjectItem CreateNewFile(DirectoryNode upper, string fileName)
		{
			upper.Expanding();
			
			FileNode fileNode = new FileNode(fileName, FileNodeStatus.InProject);
			fileNode.AddTo(upper);
			fileNode.EnsureVisible();
			return IncludeFileInProject.IncludeFileNode(fileNode);
		}