Пример #1
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;
            ISolutionFolderNode            solutionFolderNode = node as ISolutionFolderNode;

            if (solutionFolderNode != null)
            {
                using (OpenFileDialog fdiag = new OpenFileDialog()) {
                    fdiag.AddExtension     = true;
                    fdiag.Filter           = ProjectService.GetAllProjectsFilter(this, false);
                    fdiag.Multiselect      = true;
                    fdiag.CheckFileExists  = true;
                    fdiag.InitialDirectory = AddNewProjectToSolution.GetInitialDirectorySuggestion(solutionFolderNode.Folder);
                    if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK)
                    {
                        try {
                            foreach (string fileName in fdiag.FileNames)
                            {
                                solutionFolderNode.Folder.AddExistingProject(FileName.Create(fileName));
                            }
                        } catch (ProjectLoadException ex) {
                            MessageService.ShowError(ex.Message);
                        } catch (IOException ex) {
                            MessageService.ShowError(ex.Message);
                        }
                        ProjectService.SaveSolution();
                    }
                }
            }
        }
Пример #2
0
		public override void Execute(object parameter)
		{
			AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;
			if (node != null) {
				string nodeFileName = null;
			    var projectNode = node as ProjectNode;
			    if (projectNode != null)
			        nodeFileName = projectNode.Project.FileName;
			    else
			    {
			        var directoryNode = node as DirectoryNode;
			        if (directoryNode != null)
			            nodeFileName = directoryNode.Directory;
			        else
			        {
			            var fileNode = node as FileNode;
			            if (fileNode != null)
			                nodeFileName = fileNode.FileName;
			            else
			            {
			                var solutionNode = node as SolutionNode;
			                if (solutionNode != null)
			                    nodeFileName = solutionNode.Solution.Directory;
			            }
			        }
			    }
			    if (nodeFileName != null) {
					List<OpenedFile> unsavedFiles = new List<OpenedFile>();
					foreach (OpenedFile file in SD.FileService.OpenedFiles) {
						if (file.IsDirty && !file.IsUntitled) {
							if (string.IsNullOrEmpty(file.FileName)) continue;
							if (FileUtility.IsUrl(file.FileName)) continue;
							if (FileUtility.IsBaseDirectory(nodeFileName, file.FileName)) {
								unsavedFiles.Add(file);
							}
						}
					}
					if (unsavedFiles.Count > 0) {
						if (MessageService.ShowCustomDialog(
							MessageService.DefaultMessageBoxTitle,
							"The version control operation would affect files with unsaved modifications.\n" +
							"You have to save those files before running the operation.",
							0, 1,
							"Save files", "Cancel")
						    == 0)
						{
							// Save
							foreach (OpenedFile file in unsavedFiles) {
								ICSharpCode.SharpDevelop.Commands.SaveFile.Save(file);
							}
						} else {
							// Cancel
							return;
						}
					}
					// now run the actual operation:
					Execute(nodeFileName, node, AfterCommand(nodeFileName, node));
				}
			}
		}
        protected override void Execute(string filename, AbstractProjectBrowserTreeNode node, Action callback)
        {
            var item = TFS.GetTfsItem(filename);

            if (item != null)
            {
                try {
                    //   var historyList = item.Workspace.VersionControlServer.QueryHistory(item.ItemSpec).ToList();
                    //    var earliest = historyList.OrderByDescending(x => x.CreationDate).FirstOrDefault();

                    var wrapper = new TfsHistoryDialogWrapper(
                        item.Workspace.VersionControlServer,
                        filename,
                        VersionSpec.Latest,
                        item.ItemSpec.DeletionId,
                        RecursionType.OneLevel,
                        null,
                        null,
                        string.Empty,
                        int.MaxValue,
                        true);
                    wrapper.ShowDialog();

                    //item.Workspace.VersionControlServer.GetItem(filename);
                }
                catch (Exception ex)
                {
                }
            }
        }
Пример #4
0
        void AddWebReferenceToProjectBrowser(AbstractProjectBrowserTreeNode node, WebReference webReference)
        {
            TreeNode webReferencesNode = null;

            if (node is ProjectNode)
            {
                webReferencesNode = AddWebReferenceToProjectNode((ProjectNode)node, webReference);
            }
            else if (node is WebReferencesFolderNode)
            {
                webReferencesNode = node;
                WebReferenceNodeBuilder.AddWebReference((WebReferencesFolderNode)webReferencesNode, webReference);
            }
            else if (node is ReferenceFolder && node.Parent != null && node.Parent is ProjectNode)
            {
                webReferencesNode = AddWebReferenceToProjectNode((ProjectNode)node.Parent, webReference);
            }
            else
            {
                LoggingService.Warn("AddWebReferenceToProjectBrowser: Selected node type is not handled.");
                AddWebReferenceToProjectBrowser(node.Parent as AbstractProjectBrowserTreeNode, webReference);
            }

            if (webReferencesNode != null)
            {
                ProjectBrowserPad.Instance.ProjectBrowserControl.TreeView.Sort();
                webReferencesNode.Expand();
                webReferencesNode.EnsureVisible();
            }
        }
        public static void EnqueueRecursive(AbstractProjectBrowserTreeNode node)
        {
            if (subversionDisabled)
            {
                return;
            }
            lock (queue) {
                queue.Enqueue(node);
                // use breadth-first search
                Queue <AbstractProjectBrowserTreeNode> q = new Queue <AbstractProjectBrowserTreeNode>();
                q.Enqueue(node);
                while (q.Count > 0)
                {
                    node = q.Dequeue();
                    foreach (TreeNode n in node.Nodes)
                    {
                        node = n as AbstractProjectBrowserTreeNode;
                        if (node != null)
                        {
                            q.Enqueue(node);
                            queue.Enqueue(node);
                        }
                    }
                }

                if (!threadRunning)
                {
                    threadRunning = true;
                    ThreadPool.QueueUserWorkItem(Run);
                }
            }
        }
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = Owner as AbstractProjectBrowserTreeNode;
            IProject project = (node != null) ? node.Project : ProjectService.CurrentProject;

            if (project == null)
            {
                return;
            }
            LoggingService.Info("Show add reference dialog for " + project.FileName);
            using (SelectReferenceDialog selDialog = new SelectReferenceDialog(project)) {
                if (selDialog.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK)
                {
                    var duplicateReferences = new List <string>();
                    foreach (ReferenceProjectItem reference in selDialog.ReferenceInformations)
                    {
                        var thisReference = reference;
                        if (project.Items.OfType <ReferenceProjectItem>().All(r => r.ShortName != thisReference.ShortName))
                        {
                            ProjectService.AddProjectItem(project, reference);
                        }
                    }
                    project.Save();
                }
            }
        }
Пример #7
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            System.Configuration.ConfigurationSettings.AppSettings["TagDatabase"] = ((FileNode)node).FullPath;
            //node.NodeFont = new Font(node.TreeView.Font, FontStyle.Bold);
        }
Пример #8
0
		public static void EnqueueRecursive(AbstractProjectBrowserTreeNode node)
		{
			lock (queue) {
				if (inQueue.Add(node))
					queue.Enqueue(node);
				// use breadth-first search
				Queue<AbstractProjectBrowserTreeNode> q = new Queue<AbstractProjectBrowserTreeNode>();
				q.Enqueue(node);
				while (q.Count > 0) {
					node = q.Dequeue();
					foreach (TreeNode n in node.Nodes) {
						node = n as AbstractProjectBrowserTreeNode;
						if (node != null) {
							q.Enqueue(node);
							if (inQueue.Add(node))
								queue.Enqueue(node);
						}
					}
				}
				
				if (!threadRunning) {
					threadRunning = true;
					ThreadPool.QueueUserWorkItem(Run);
				}
			}
		}
Пример #9
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            if (node != null && node.Project != null)
            {
                using (AddWebReferenceDialog refDialog = new AddWebReferenceDialog(node.Project)) {
                    refDialog.NamespacePrefix = node.Project.RootNamespace;
                    if (refDialog.ShowDialog() == DialogResult.OK)
                    {
                        // Do not overwrite existing web references.
                        refDialog.WebReference.Name = WebReference.GetReferenceName(refDialog.WebReference.WebReferencesDirectory, refDialog.WebReference.Name);
                        refDialog.WebReference.Save();

                        foreach (ProjectItem item in refDialog.WebReference.Items)
                        {
                            ProjectService.AddProjectItem(node.Project, item);
                        }

                        AddWebReferenceToProjectBrowser(node, refDialog.WebReference);

                        // Add proxy to code completion.
                        ParserService.ParseFile(refDialog.WebReference.WebProxyFileName);

                        node.Project.Save();
                    }
                }
            }
        }
Пример #10
0
 private void GetNodesRecursive(List <AbstractProjectBrowserTreeNode> nodes, AbstractProjectBrowserTreeNode node)
 {
     foreach (var node1 in node.Nodes.OfType <AbstractProjectBrowserTreeNode>())
     {
         nodes.Add(node1);
         GetNodesRecursive(nodes, node1);
     }
 }
Пример #11
0
        private static void RunStep(AbstractProjectBrowserTreeNode node)
        {
            if (node.IsDisposed)
            {
                return;
            }

            var       fileNode = node as FileNode;
            TFSStatus status;

            if (fileNode != null)
            {
                status = TFS.GetFileStatus(fileNode.FileName);
            }
            else
            {
                var projectNode = node as ProjectNode;
                if (projectNode != null)
                {
                    status = TFS.GetFileStatus(projectNode.Project.FileName);
                }
                else
                {
                    //var directoryNode = node as DirectoryNode;
                    //if (directoryNode != null)
                    //{
                    //    status = TFS.GetFileStatus(directoryNode.Directory);
                    //}
                    //else
                    //{
                    var solNode = node as SolutionNode;
                    if (solNode != null)
                    {
                        status = TFS.GetFileStatus(solNode.Solution.Directory);
                    }
                    else
                    {
                        return;
                    }
                    // }
                }
            }

            SD.MainThread.InvokeAsyncAndForget(delegate
            {
                Image image = GetImage(status);
                if (image != null)
                {
                    node.Overlay = image;
                }
                else if (node.Overlay != null && (node.Overlay.Tag as Type) == typeof(OverlayIconManager))
                {
                    // reset overlay to null only if the old overlay belongs to the OverlayIconManager
                    node.Overlay = null;
                }
            });
        }
        static void CallbackInvoked()
        {
            OverlayIconManager.ClearStatusCache();
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            if (node != null)
            {
                OverlayIconManager.EnqueueRecursive(node);
            }
        }
Пример #13
0
		Action AfterCommand(string nodeFileName, AbstractProjectBrowserTreeNode node)
		{
			return delegate {
				SD.MainThread.VerifyAccess();
				// and then refresh the project browser:
			//////////	TFSStatusCache.ClearCachedStatus(nodeFileName);
				OverlayIconManager.EnqueueRecursive(node);
				OverlayIconManager.EnqueueParents(node);
			};
		}
Пример #14
0
		Action AfterCommand(string nodeFileName, AbstractProjectBrowserTreeNode node)
		{
			return delegate {
				WorkbenchSingleton.AssertMainThread();
				// and then refresh the project browser:
				GitStatusCache.ClearCachedStatus(nodeFileName);
				OverlayIconManager.EnqueueRecursive(node);
				OverlayIconManager.EnqueueParents(node);
			};
		}
Пример #15
0
 Action AfterCommand(string nodeFileName, AbstractProjectBrowserTreeNode node)
 {
     return(delegate {
         WorkbenchSingleton.AssertMainThread();
         // and then refresh the project browser:
         GitStatusCache.ClearCachedStatus(nodeFileName);
         OverlayIconManager.EnqueueRecursive(node);
         OverlayIconManager.EnqueueParents(node);
     });
 }
Пример #16
0
		void UpdateToolStrip(AbstractProjectBrowserTreeNode node)
		{
			toolStrip.Items.Clear();
			toolStrip.Items.AddRange(standardItems);
			ToolbarService.UpdateToolbar(toolStrip);
			if (node != null && node.ToolbarAddinTreePath != null) {
				toolStrip.Items.Add(new ToolStripSeparator());
				toolStrip.Items.AddRange((ToolStripItem[])AddInTree.BuildItems(node.ToolbarAddinTreePath, node, false).ToArray(typeof(ToolStripItem)));
			}
		}
 public static FileNode GetFileNode(AbstractProjectBrowserTreeNode parent, string fileName)
 {
     foreach (AbstractProjectBrowserTreeNode node in parent.Nodes) {
         FileNode fileNode = node as FileNode;
         if (fileNode != null && fileNode.FileName == fileName) {
             return fileNode;
         }
     }
     return null;
 }
Пример #18
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            if (node == null)
            {
                return;
            }
            node.ShowProperties();
        }
Пример #19
0
 protected override void Execute(string filename, AbstractProjectBrowserTreeNode node, Action callback)
 {
     try {
         TFS.AddFile(filename);
     }
     catch (Exception ex)
     {
         TFSMessageView.Log("TFSError: Add: " + ex.Message + " (" + filename + ")");
     }
 }
Пример #20
0
		void UpdateToolStrip(AbstractProjectBrowserTreeNode node)
		{
			if (toolStrip == null) return;
			toolStrip.Items.Clear();
			toolStrip.Items.AddRange(standardItems);
			SD.WinForms.ToolbarService.UpdateToolbar(toolStrip);
			if (node != null && node.ToolbarAddinTreePath != null) {
				toolStrip.Items.Add(new ToolStripSeparator());
				toolStrip.Items.AddRange(SD.WinForms.ToolbarService.CreateToolStripItems(node.ToolbarAddinTreePath, node, false));
			}
		}
Пример #21
0
        XmlDocument LoadAppConfig()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;
            FileName appConfigFileName          = CompilableProject.GetAppConfigFile(node.Project, false);

            if (!String.IsNullOrEmpty(appConfigFileName))
            {
                return(LoadAppConfig(appConfigFileName));
            }
            return(null);
        }
Пример #22
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            if (node == null)
            {
                return;
            }

            node.ActivateItem();
        }
 public static FileNode GetFileNode(AbstractProjectBrowserTreeNode parent, string fileName)
 {
     foreach (AbstractProjectBrowserTreeNode node in parent.Nodes)
     {
         FileNode fileNode = node as FileNode;
         if (fileNode != null && fileNode.FileName == fileName)
         {
             return(fileNode);
         }
     }
     return(null);
 }
Пример #24
0
		public static void Enqueue(AbstractProjectBrowserTreeNode node)
		{
			lock (queue) {
				if (inQueue.Add(node)) {
					queue.Enqueue(node);
					if (!threadRunning) {
						threadRunning = true;
						ThreadPool.QueueUserWorkItem(Run);
					}
				}
			}
		}
Пример #25
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            if (node == null)
            {
                return;
            }

            ProjectBrowserPad.Instance.ProjectBrowserControl.Select();
            ProjectBrowserPad.Instance.ProjectBrowserControl.Focus();
            ProjectBrowserPad.Instance.StartLabelEdit(node);
        }
 public static void Enqueue(AbstractProjectBrowserTreeNode node)
 {
     if (_subversionDisabled)
         return;
     lock (Queue)
     {
         Queue.Enqueue(node);
         if (!_threadRunning)
         {
             _threadRunning = true;
             ThreadPool.QueueUserWorkItem(Run);
         }
     }
 }
Пример #27
0
 public static void Enqueue(AbstractProjectBrowserTreeNode node)
 {
     lock (queue) {
         if (inQueue.Add(node))
         {
             queue.Enqueue(node);
             if (!threadRunning)
             {
                 threadRunning = true;
                 ThreadPool.QueueUserWorkItem(Run);
             }
         }
     }
 }
Пример #28
0
        static void RunStep(AbstractProjectBrowserTreeNode node)
        {
            if (node.IsDisposed)
            {
                return;
            }

            FileNode  fileNode = node as FileNode;
            GitStatus status;

            if (fileNode != null)
            {
                status = GitStatusCache.GetFileStatus(fileNode.FileName);
            }
            else
            {
                DirectoryNode directoryNode = node as DirectoryNode;
                if (directoryNode != null)
                {
                    status = GitStatusCache.GetFileStatus(directoryNode.Directory);
                }
                else
                {
                    SolutionNode solNode = node as SolutionNode;
                    if (solNode != null)
                    {
                        status = GitStatusCache.GetFileStatus(solNode.Solution.Directory);
                    }
                    else
                    {
                        return;
                    }
                }
            }

            WorkbenchSingleton.SafeThreadAsyncCall(
                delegate {
                Image image = GetImage(status);
                if (image != null)
                {
                    node.Overlay = image;
                }
                else if (node.Overlay != null && (node.Overlay.Tag as Type) == typeof(GitAddIn.OverlayIconManager))
                {
                    // reset overlay to null only if the old overlay belongs to the OverlayIconManager
                    node.Overlay = null;
                }
            });
        }
Пример #29
0
		public static void EnqueueParents(AbstractProjectBrowserTreeNode node)
		{
			lock (queue) {
				while (node != null) {
					if (inQueue.Add(node))
						queue.Enqueue(node);
					node = node.Parent as AbstractProjectBrowserTreeNode;
				}
				
				if (!threadRunning) {
					threadRunning = true;
					ThreadPool.QueueUserWorkItem(Run);
				}
			}
		}
 public static void Enqueue(AbstractProjectBrowserTreeNode node)
 {
     if (subversionDisabled)
     {
         return;
     }
     lock (queue) {
         queue.Enqueue(node);
         if (!threadRunning)
         {
             threadRunning = true;
             ThreadPool.QueueUserWorkItem(Run);
         }
     }
 }
Пример #31
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;
            ISolutionFolderNode            solutionFolderNode = node as ISolutionFolderNode;

            if (node != null)
            {
                ISolutionFolder newSolutionFolder = solutionFolderNode.Folder.CreateFolder(ResourceService.GetString("ProjectComponent.NewFolderString"));
                solutionFolderNode.Solution.Save();

                SolutionFolderNode newSolutionFolderNode = new SolutionFolderNode(newSolutionFolder);
                newSolutionFolderNode.InsertSorted(node);
                ProjectBrowserPad.Instance.StartLabelEdit(newSolutionFolderNode);
            }
        }
Пример #32
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            if (node == null)
            {
                return;
            }
            if (node.Project.IsStartable)
            {
                node.Project.Start(true);
            }
            else
            {
                MessageService.ShowError("${res:BackendBindings.ExecutionManager.CantExecuteDLLError}");
            }
        }
        private static void HandleNode(AbstractProjectBrowserTreeNode node)
        {
            if (node == null)
            {
                return;
            }

            var solutionNode = node as SolutionNode;
            if (solutionNode != null)
            {
                GitStatusCache.ClearCachedStatus(solutionNode.Solution.FileName);
                OverlayIconManager.EnqueueRecursive(solutionNode);
                return;
            }

            OverlayIconManager.Enqueue(node);
        }
Пример #34
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;

            if (node == null)
            {
                return;
            }

            if (node is FileNode)
            {
                ExcludeFileNode((FileNode)node);
            }
            else if (node is DirectoryNode)
            {
                node.Expanding();
                Stack <TreeNode> nodeStack = new Stack <TreeNode>();
                nodeStack.Push(node);
                while (nodeStack.Count > 0)
                {
                    TreeNode cur = nodeStack.Pop();

                    if (cur is FileNode)
                    {
                        ExcludeFileNode((FileNode)cur);
                    }
                    else if (cur is DirectoryNode)
                    {
                        ExcludeDirectoryNode((DirectoryNode)cur);
                    }

                    foreach (TreeNode childNode in cur.Nodes)
                    {
                        if (childNode is ExtTreeNode)
                        {
                            ((ExtTreeNode)childNode).Expanding();
                        }
                        nodeStack.Push(childNode);
                    }
                }
            }

            ProjectService.SaveSolution();
            ((AbstractProjectBrowserTreeNode)node.Parent).Refresh();
        }
Пример #35
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;
            Solution solution = ProjectService.OpenSolution;

            if (node == null || solution == null)
            {
                return;
            }
            if (node.Project.IsStartable)
            {
                solution.Preferences.StartupProject = node.Project;
            }
            else
            {
                MessageService.ShowError("${res:BackendBindings.ExecutionManager.CantExecuteDLLError}");
            }
        }
Пример #36
0
        public static void EnqueueParents(AbstractProjectBrowserTreeNode node)
        {
            lock (queue) {
                while (node != null)
                {
                    if (inQueue.Add(node))
                    {
                        queue.Enqueue(node);
                    }
                    node = node.Parent as AbstractProjectBrowserTreeNode;
                }

                if (!threadRunning)
                {
                    threadRunning = true;
                    ThreadPool.QueueUserWorkItem(Run);
                }
            }
        }
Пример #37
0
        protected override void Execute(string filename, AbstractProjectBrowserTreeNode node, Action callback)
        {
            try
            {
                var nodes = new List <AbstractProjectBrowserTreeNode> {
                    node
                };

                GetNodesRecursive(nodes, node);
                var anythingUpdated = false;

                foreach (var treeNode in nodes)
                {
                    var itemPath = TFS.GetFileName(treeNode);
                    if (string.IsNullOrWhiteSpace(itemPath))
                    {
                        continue;
                    }
                    var item = TFS.GetTfsItem(itemPath);
                    if (item == null)
                    {
                        continue;
                    }
                    GetRequest request = new GetRequest(item.ItemSpec, VersionSpec.Latest);
                    GetStatus  status  = item.Workspace.Get(request, GetOptions.None);
                    if (!status.NoActionNeeded)
                    {
                        TFSMessageView.Log(item.Path + " updated.");
                    }

                    anythingUpdated = anythingUpdated || !status.NoActionNeeded;
                }

                if (!anythingUpdated)
                {
                    TFSMessageView.Log("All files are up to date.");
                }
            }
            catch (Exception ex)
            {
            }
        }
Пример #38
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = Owner as AbstractProjectBrowserTreeNode;
            IProject project = (node != null) ? node.Project : ProjectService.CurrentProject;

            if (project == null)
            {
                return;
            }
            using (SelectMonoReferenceDialog selDialog = new SelectMonoReferenceDialog(project)) {
                if (selDialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK)
                {
                    foreach (ReferenceProjectItem reference in selDialog.ReferenceInformations)
                    {
                        ProjectService.AddProjectItem(project, reference);
                    }
                    project.Save();
                }
            }
        }
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;
            ISolutionFolderNode            solutionFolderNode = node as ISolutionFolderNode;

            if (node != null)
            {
                using (NewProjectDialog npdlg = new NewProjectDialog(false)) {
                    npdlg.InitialProjectLocationDirectory = GetInitialDirectorySuggestion(solutionFolderNode);

                    // show the dialog to request project type and name
                    if (npdlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK)
                    {
                        if (npdlg.NewProjectLocation.Length == 0)
                        {
                            MessageService.ShowError("No project has been created, there is nothing to add.");
                            return;
                        }
                        AddExitingProjectToSolution.AddProject(solutionFolderNode, npdlg.NewProjectLocation);
                        ProjectService.SaveSolution();

                        if (SDLite.UpdateInfo.ExpandNewProjectByDefaut)
                        {
                            IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;

                            if (window != null && window.ActiveViewContent != null)
                            {
                                ProjectBrowserPad.Instance.ProjectBrowserControl.SelectFile(window.ActiveViewContent.PrimaryFileName);
                            }

                            node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;

                            if (node is ProjectNode)
                            {
                                node.Expand();
                            }
                        }
                    }
                }
            }
        }
		void AddWebReferenceToProjectBrowser(AbstractProjectBrowserTreeNode node, WebReference webReference)
		{
			TreeNode webReferencesNode = null;
			if (node is ProjectNode) {
				webReferencesNode = AddWebReferenceToProjectNode((ProjectNode)node, webReference);
			} else if (node is WebReferencesFolderNode) {
				webReferencesNode = node;
				WebReferenceNodeBuilder.AddWebReference((WebReferencesFolderNode)webReferencesNode, webReference);
			} else if (node is ReferenceFolder && node.Parent != null && node.Parent is ProjectNode) {
				webReferencesNode = AddWebReferenceToProjectNode((ProjectNode)node.Parent, webReference);
			} else {
				LoggingService.Warn("AddWebReferenceToProjectBrowser: Selected node type is not handled.");
				AddWebReferenceToProjectBrowser(node.Parent as AbstractProjectBrowserTreeNode, webReference);
			}
			
			if (webReferencesNode != null) {
				ProjectBrowserPad.Instance.ProjectBrowserControl.TreeView.Sort();
				webReferencesNode.Expand();
				webReferencesNode.EnsureVisible();
			}
		}
		public object Visit(AbstractProjectBrowserTreeNode abstractProjectBrowserTreeNode, object data)
		{
			LoggingService.Warn("Warning visited default Visit() for : " + abstractProjectBrowserTreeNode);
			abstractProjectBrowserTreeNode.AcceptChildren(this, data);
			return data;
		}
		static void RunStep(AbstractProjectBrowserTreeNode node)
		{
			if (node.IsDisposed) return;
			
			FileNode fileNode = node as FileNode;
			StatusKind status;
			if (fileNode != null) {
				status = GetStatus(fileNode.FileName);
			} else {
				DirectoryNode directoryNode = node as DirectoryNode;
				if (directoryNode != null) {
					status = GetStatus(directoryNode.Directory);
				} else {
					SolutionNode solNode = node as SolutionNode;
					if (solNode != null) {
						status = GetStatus(solNode.Solution.Directory);
					} else {
						return;
					}
				}
			}
			
			SharpDevelop.Gui.WorkbenchSingleton.SafeThreadAsyncCall(
				delegate {
					node.Overlay = GetImage(status);
				});
		}
        private static void RunStep(AbstractProjectBrowserTreeNode node)
        {
            if (node.IsDisposed)
            {
                return;
            }

            var statusKind = node.GetNodeStatus();
            if (!statusKind.HasValue)
            {
                return;
            }

            WorkbenchSingleton.SafeThreadAsyncCall(() => node.Overlay = GetImage(statusKind.Value));
        }
Пример #44
0
		static void RunStep(AbstractProjectBrowserTreeNode node)
		{
			if (node.IsDisposed) return;
			
			FileNode fileNode = node as FileNode;
			GitStatus status;
			if (fileNode != null) {
				status = GitStatusCache.GetFileStatus(fileNode.FileName);
			} else {
				DirectoryNode directoryNode = node as DirectoryNode;
				if (directoryNode != null) {
					status = GitStatusCache.GetFileStatus(directoryNode.Directory);
				} else {
					SolutionNode solNode = node as SolutionNode;
					if (solNode != null) {
						status = GitStatusCache.GetFileStatus(solNode.Solution.Directory);
					} else {
						return;
					}
				}
			}
			
			SD.MainThread.InvokeAsyncAndForget(delegate {
				Image image = GetImage(status);
				if (image != null) {
					node.Overlay = image;
				} else
		if (node.Overlay != null && (node.Overlay.Tag as Type) == typeof(GitAddIn.OverlayIconManager)) {
					// reset overlay to null only if the old overlay belongs to the OverlayIconManager
					node.Overlay = null;
				}
			});
		}
        private static void RunStep(AbstractProjectBrowserTreeNode node)
        {
            var status = node?.GetNodeStatus();
            if (!status.HasValue)
            {
                return;
            }

            WorkbenchSingleton.SafeThreadAsyncCall(
                () =>
                {
                    var image = GetImage(status.Value);
                    if (image != null)
                    {
                        node.Overlay = image;
                    }
                    else if (node.Overlay != null && (node.Overlay.Tag as Type) == typeof(OverlayIconManager))
                    {
                        // reset overlay to null only if the old overlay belongs to the OverlayIconManager
                        node.Overlay = null;
                    }
                });
        }
        public static void EnqueueRecursive(AbstractProjectBrowserTreeNode node)
        {
            if (_subversionDisabled)
                return;

            lock (Queue)
            {
                Queue.Enqueue(node);

                // use breadth-first search
                var q = new Queue<AbstractProjectBrowserTreeNode>();
                q.Enqueue(node);
                while (q.Count > 0)
                {
                    node = q.Dequeue();
                    foreach (TreeNode n in node.Nodes)
                    {
                        node = n as AbstractProjectBrowserTreeNode;
                        if (node != null)
                        {
                            q.Enqueue(node);
                            Queue.Enqueue(node);
                        }
                    }
                }

                if (!_threadRunning)
                {
                    _threadRunning = true;
                    ThreadPool.QueueUserWorkItem(Run);
                }
            }
        }
Пример #47
0
		static void RunStep(AbstractProjectBrowserTreeNode node)
		{
			if (node.IsDisposed) return;
			
			FileNode fileNode = node as FileNode;
			StatusKind status;
			if (fileNode != null) {
				status = GetStatus(fileNode.FileName);
			} else {
				DirectoryNode directoryNode = node as DirectoryNode;
				if (directoryNode != null) {
					status = GetStatus(directoryNode.Directory);
				} else {
					SolutionNode solNode = node as SolutionNode;
					if (solNode != null) {
						status = GetStatus(solNode.Solution.Directory);
					} else {
						return;
					}
				}
			}
			
			SD.MainThread.InvokeAsyncAndForget(delegate {
				node.Overlay = GetImage(status);
			});
		}