示例#1
0
        void OnProjectItemRemoved(object sender, ProjectItemEventArgs e)
        {
            if (e.Project != project)
            {
                return;
            }

            ReferenceProjectItem reference = e.ProjectItem as ReferenceProjectItem;

            if (reference != null)
            {
                try {
                    IProjectContent referencedContent = ParserService.GetExistingProjectContentForReference(reference);
                    if (referencedContent != null)
                    {
                        lock (ReferencedContents) {
                            ReferencedContents.Remove(referencedContent);
                        }
                        OnReferencedContentsChanged(EventArgs.Empty);
                    }
                } catch (Exception ex) {
                    MessageService.ShowError(ex);
                }
            }

            if (e.ProjectItem.ItemType == ItemType.Import)
            {
                UpdateDefaultImports(project.Items);
            }
            else if (e.ProjectItem.ItemType == ItemType.Compile)
            {
                ParserService.ClearParseInformation(e.ProjectItem.FileName);
            }
        }
 protected virtual void ProjectItemAdded(object sender, ProjectItemEventArgs e)
 {
     if (e.ProjectItem is FileProjectItem)
     {
         AddFileProjectItemToProjectBrowser(e);
     }
 }
示例#3
0
 void ProjectService_ProjectItemAdded(object sender, ProjectItemEventArgs e)
 {
     if (e.ProjectItem is ReferenceProjectItem)
     {
         WpfToolbox.Instance.AddProjectDlls(this.Files[0]);
     }
 }
 void ProjectItemAdded(object sender, ProjectItemEventArgs e)
 {
     if (e.ProjectItem is ReferenceProjectItem)
     {
         RescanProjectAssemblies(sender, e);
     }
 }
        void OnProjectItemRemoved(object sender, ProjectItemEventArgs e)
        {
            if (e.Project != project)
            {
                return;
            }

            ReferenceProjectItem reference = e.ProjectItem as ReferenceProjectItem;

            if (reference != null)
            {
                try {
                    ReparseReferences();
                } catch (Exception ex) {
                    MessageService.ShowException(ex);
                }
            }

            FileProjectItem fileProjectItem = e.ProjectItem as FileProjectItem;

            if (IsParseableFile(fileProjectItem))
            {
                SD.ParserService.RemoveOwnerProject(e.ProjectItem.FileName, project);
            }
        }
示例#6
0
 private void Project_ItemAdded(object sender, ProjectItemEventArgs e)
 {
     if (!Microsoft.Expression.Framework.Documents.PathHelper.FileExists(e.ProjectItem.DocumentReference.Path))
     {
         return;
     }
     this.asyncManager.AddFile(e.ProjectItem);
 }
        void AddFileProjectItemToProjectBrowser(ProjectItemEventArgs e)
        {
            var visitor = new UpdateProjectBrowserFileNodesVisitor(e);

            foreach (AbstractProjectBrowserTreeNode node in projectBrowser.TreeView.Nodes)
            {
                node.AcceptVisitor(visitor, null);
            }
        }
示例#8
0
        private void Project_ItemDeleted(object sender, ProjectItemEventArgs e)
        {
            IProjectItem projectItem = e.ProjectItem;

            if (projectItem != null && projectItem.Document != null)
            {
                projectItem.Document.SourceChanged();
            }
        }
 void ProjectItemRemoved(object sender, ProjectItemEventArgs e)
 {
     LoggingService.Debug("ProjectItemRemoved.");
     if (e.ProjectItem.ItemType != ItemType.Folder)
     {
         if (NAntBuildFile.IsBuildFile(e.ProjectItem.FileName))
         {
             treeView.RemoveBuildFile(e.ProjectItem.FileName);
         }
     }
 }
示例#10
0
 void OnReferenceAdded(object sender, ProjectItemEventArgs e)
 {
     if (!(e.ProjectItem is ReferenceProjectItem))
     {
         return;
     }
     if (e.Project != SD.ProjectService.FindProjectContainingFile(Files[0].FileName))
     {
         return;
     }
     WpfToolbox.Instance.AddProjectDlls(Files[0]);
 }
示例#11
0
 private void project_ItemRemoved(object sender, ProjectItemEventArgs e)
 {
     RemoveProjectItemNode(e.ProjectItem);
     if (Project.IsEmpty)
     {
         ModelNode node = new EmptyProjectNode(Project);
         Nodes.Add(node);
         if (TreeView != null)
         {
             node.AfterInitialized();
         }
     }
 }
示例#12
0
        private void Project_ItemRemoved(object sender, ProjectItemEventArgs e)
        {
            if (base.Services.ProjectManager().ItemSelectionSet.IsSelected(e.ProjectItem))
            {
                base.Services.ProjectManager().ItemSelectionSet.RemoveSelection(e.ProjectItem);
            }
            ProjectItemNode projectItemNode = base.FindItemNode(e.ProjectItem);

            if (projectItemNode != null)
            {
                if (projectItemNode.Parent != null)
                {
                    projectItemNode.Parent.RemoveChild(projectItemNode);
                }
                projectItemNode.Dispose();
            }
        }
示例#13
0
        void OnItemsChanged(object sender, ProjectItemEventArgs e)
        {
            var projects = new HashSet <DotNetProject> ();

            foreach (ProjectItemEventInfo evt in e)
            {
                if (evt.Item is NativeReference)
                {
                    projects.Add((DotNetProject)evt.SolutionItem);
                }
            }
            foreach (var project in projects)
            {
                ITreeBuilder builder = Context.GetTreeBuilder(project);
                if (builder != null)
                {
                    builder.UpdateChildren();
                }
            }
        }
        void OnProjectItemAdded(object sender, ProjectItemEventArgs e)
        {
            if (e.Project != project)
            {
                return;
            }

            ReferenceProjectItem reference = e.ProjectItem as ReferenceProjectItem;

            if (reference != null)
            {
                ReparseReferences();
            }
            FileProjectItem fileProjectItem = e.ProjectItem as FileProjectItem;

            if (IsParseableFile(fileProjectItem))
            {
                var fileName = e.ProjectItem.FileName;
                SD.ParserService.AddOwnerProject(fileName, project, startAsyncParse: true, isLinkedFile: fileProjectItem.IsLink);
            }
        }
        void OnReferencesChanged(object sender, ProjectItemEventArgs e)
        {
            foreach (var project in e.Select(x => x.SolutionItem).Distinct())
            {
                var dnp = project as DotNetProject;
                if (dnp == null)
                {
                    continue;
                }

                var addinFlavor = dnp.AsFlavor <AddinProjectFlavor> ();
                if (addinFlavor == null)
                {
                    continue;
                }

                ITreeBuilder builder = Context.GetTreeBuilder(addinFlavor.AddinReferences);
                if (builder != null)
                {
                    builder.UpdateChildren();
                }
            }
        }
示例#16
0
 void ProjectItemRemoved(object source, ProjectItemEventArgs e)
 {
     ProjectItemRemoved(e.ProjectItem);
 }
示例#17
0
 private void project_ItemAdded(object sender, ProjectItemEventArgs e)
 {
     this.Delete();
 }
示例#18
0
 private void Project_ItemRemoved(object sender, ProjectItemEventArgs e)
 {
     this.designDataCache.Remove(e.ProjectItem);
 }
示例#19
0
        void OnProjectItemAdded(object sender, ProjectItemEventArgs e)
        {
            if (e.Project != project)
            {
                return;
            }

            ReferenceProjectItem reference = e.ProjectItem as ReferenceProjectItem;

            if (reference != null)
            {
                if (reference.ItemType == ItemType.COMReference)
                {
                    System.Windows.Forms.MethodInvoker action = delegate {
                        // Compile project to ensure interop library is generated
                        project.Save();                         // project is not yet saved when ItemAdded fires, so save it here
                        TaskService.BuildMessageViewCategory.AppendText("\n${res:MainWindow.CompilerMessages.CreatingCOMInteropAssembly}\n");
                        BuildCallback callback = delegate {
                            System.Threading.ThreadPool.QueueUserWorkItem(AddReference, reference);
                            lock (callAfterAddComReference) {
                                if (callAfterAddComReference.Count > 0)
                                {
                                    callAfterAddComReference.Dequeue()();
                                }
                                else
                                {
                                    buildingComReference = false;
                                }
                            }
                        };
                        project.StartBuild(new BuildOptions(BuildTarget.ResolveComReferences, callback));
                    };
                    lock (callAfterAddComReference) {
                        if (buildingComReference)
                        {
                            callAfterAddComReference.Enqueue(action);
                        }
                        else
                        {
                            buildingComReference = true;
                            action();
                        }
                    }
                }
                else
                {
                    System.Threading.ThreadPool.QueueUserWorkItem(AddReference, reference);
                }
            }
            if (e.ProjectItem.ItemType == ItemType.Import)
            {
                UpdateDefaultImports(project.Items);
            }
            else if (e.ProjectItem.ItemType == ItemType.Compile)
            {
                if (System.IO.File.Exists(e.ProjectItem.FileName))
                {
                    ParserService.EnqueueForParsing(e.ProjectItem.FileName);
                }
            }
        }
示例#20
0
 private void Project_ItemRemoved(object sender, ProjectItemEventArgs e)
 {
     this.CheckForProjectReferenceChange(e.ProjectItem);
 }
 protected override void ProjectItemAdded(object sender, ProjectItemEventArgs e)
 {
     SD.MainThread.InvokeIfRequired(() => base.ProjectItemAdded(sender, e));
 }
示例#22
0
        void OnProjectItemAdded(object sender, ProjectItemEventArgs e)
        {
            if (e.Project != project)
            {
                return;
            }

            ReferenceProjectItem reference = e.ProjectItem as ReferenceProjectItem;

            if (reference != null)
            {
                if (reference.ItemType == ItemType.COMReference)
                {
                    System.Windows.Forms.MethodInvoker action = delegate {
                        // Compile project to ensure interop library is generated
                        project.Save();                         // project is not yet saved when ItemAdded fires, so save it here
                        TaskService.BuildMessageViewCategory.AppendText("\n${res:MainWindow.CompilerMessages.CreatingCOMInteropAssembly}\n");
                        BuildCallback afterBuildCallback = delegate {
                            lock (callAfterAddComReference) {
                                if (callAfterAddComReference.Count > 0)
                                {
                                    // run next enqueued action
                                    callAfterAddComReference.Dequeue()();
                                }
                                else
                                {
                                    buildingComReference = false;
                                    ParserService.Reparse(project, true, false);
                                }
                            }
                        };
                        BuildEngine.BuildInGui(project, new BuildOptions(BuildTarget.ResolveComReferences, afterBuildCallback));
                    };

                    // enqueue actions when adding multiple COM references so that multiple builds of the same project
                    // are not started parallely
                    lock (callAfterAddComReference) {
                        if (buildingComReference)
                        {
                            callAfterAddComReference.Enqueue(action);
                        }
                        else
                        {
                            buildingComReference = true;
                            action();
                        }
                    }
                }
                else
                {
                    ParserService.Reparse(project, true, false);
                }
            }
            if (e.ProjectItem.ItemType == ItemType.Import)
            {
                UpdateDefaultImports(project.Items);
            }
            else if (e.ProjectItem.ItemType == ItemType.Compile)
            {
                if (System.IO.File.Exists(e.ProjectItem.FileName))
                {
                    ParserService.EnqueueForParsing(e.ProjectItem.FileName);
                }
            }
        }
示例#23
0
        private void Project_ItemChanged(object sender, ProjectItemEventArgs e)
        {
            IProjectItem projectItem = e.ProjectItem;

            if (projectItem.IsOpen)
            {
                MessageBoxResult messageBoxResult = MessageBoxResult.No;
                string           projectItemChangedDialogFileDirtyMessage = null;
                if (projectItem.IsDirty)
                {
                    if ((e.Options & ProjectItemEventOptions.SilentIfDirty) != ProjectItemEventOptions.SilentIfDirty)
                    {
                        projectItemChangedDialogFileDirtyMessage = StringTable.ProjectItemChangedDialogFileDirtyMessage;
                    }
                    else
                    {
                        messageBoxResult = MessageBoxResult.Yes;
                    }
                }
                else if ((e.Options & ProjectItemEventOptions.SilentIfOpen) != ProjectItemEventOptions.SilentIfOpen)
                {
                    projectItemChangedDialogFileDirtyMessage = StringTable.ProjectItemChangedDialogFileCleanMessage;
                }
                else
                {
                    messageBoxResult = MessageBoxResult.Yes;
                }
                if (!SolutionBase.IsReloadPromptEnabled())
                {
                    messageBoxResult = MessageBoxResult.Yes;
                    projectItemChangedDialogFileDirtyMessage = null;
                }
                if (!string.IsNullOrEmpty(projectItemChangedDialogFileDirtyMessage))
                {
                    MessageBoxArgs messageBoxArg  = new MessageBoxArgs();
                    CultureInfo    currentCulture = CultureInfo.CurrentCulture;
                    object[]       path           = new object[] { projectItem.DocumentReference.Path, base.Services.ExpressionInformationService().ShortApplicationName };
                    messageBoxArg.Message = string.Format(currentCulture, projectItemChangedDialogFileDirtyMessage, path);
                    messageBoxArg.Button  = MessageBoxButton.YesNo;
                    messageBoxArg.Image   = MessageBoxImage.Exclamation;
                    MessageBoxArgs messageBoxArg1 = messageBoxArg;
                    messageBoxResult = base.Services.MessageDisplayService().ShowMessage(messageBoxArg1);
                }
                if (messageBoxResult == MessageBoxResult.Yes)
                {
                    bool isReadOnly = projectItem.Document.IsReadOnly;
                    bool document   = projectItem.Document == base.Services.DocumentService().ActiveDocument;
                    bool flag       = false;
                    foreach (IView view in base.Services.ViewService().Views)
                    {
                        IDocumentView documentView = view as IDocumentView;
                        if (documentView == null || documentView.Document != projectItem.Document)
                        {
                            continue;
                        }
                        flag = true;
                        break;
                    }
                    projectItem.CloseDocument();
                    projectItem.OpenDocument(isReadOnly);
                    if (projectItem.IsOpen && flag)
                    {
                        projectItem.OpenView(document);
                    }
                }
            }
        }
示例#24
0
 void ProjectItemRemoved(object sender, ProjectItemEventArgs e)
 {
     RemoveTypeScriptFileFromContext(new FileName(e.ProjectItem.FileName));
 }
示例#25
0
 public UpdateProjectBrowserFileNodesVisitor(ProjectItemEventArgs projectItemEventArgs)
 {
     this.projectItemEventArgs  = projectItemEventArgs;
     this.newFileAddedToProject = projectItemEventArgs.ProjectItem as FileProjectItem;
 }
示例#26
0
 private void project_ItemAdded(object sender, ProjectItemEventArgs e)
 {
     AddProjectItemNode(e.ProjectItem);
 }
示例#27
0
 private void Project_ItemChanged(object sender, ProjectItemEventArgs e)
 {
     this.asyncManager.RemoveFile(e.ProjectItem);
     this.asyncManager.AddFile(e.ProjectItem);
 }
 protected override void ProjectItemAdded(object sender, ProjectItemEventArgs e)
 {
     WorkbenchSingleton.SafeThreadAsyncCall(() => base.ProjectItemAdded(sender, e));
 }
示例#29
0
 void ProjectItemAdded(object sender, ProjectItemEventArgs e)
 {
     AddTypeScriptFileToContext(e.Project, new FileName(e.ProjectItem.FileName));
 }
示例#30
0
 private void Project_ItemAdded(object sender, ProjectItemEventArgs e)
 {
     this.InvokeAsync((Action)(() => this.TryAddItem(e.ProjectItem)));
 }