Example #1
0
 private void UnregisterRelatedDocuments(SceneView sceneView)
 {
     ViewUpdateManager.RelatedDocumentTable relatedDocumentTable = (ViewUpdateManager.RelatedDocumentTable)null;
     if (!this.relatedDocumentsForView.TryGetValue(sceneView, out relatedDocumentTable))
     {
         return;
     }
     foreach (SceneDocument sceneDocument in new List <SceneDocument>((IEnumerable <SceneDocument>)relatedDocumentTable.Documents))
     {
         this.UnregisterRelatedDocumentInternal(sceneView, sceneDocument);
         relatedDocumentTable.Remove(sceneDocument);
     }
     this.relatedDocumentsForView.Remove(sceneView);
 }
Example #2
0
        private void OnEditTransactionUpdated(object sender, EventArgs e)
        {
            SceneDocument document   = sender as SceneDocument;
            SceneView     activeView = this.DesignerContext.ActiveView;

            ViewUpdateManager.RelatedDocumentTable relatedDocumentTable = (ViewUpdateManager.RelatedDocumentTable)null;
            if (activeView == null || activeView.IsClosing || (!this.relatedDocumentsForView.TryGetValue(activeView, out relatedDocumentTable) || !relatedDocumentTable.Contains(document)))
            {
                return;
            }
            RelatedDocumentInfo documentInfo = relatedDocumentTable[document];

            activeView.UpdateFromRelatedDocument(document, documentInfo, true, false);
            activeView.UpdateReferences();
        }
Example #3
0
        private void OnProjectContextDocumentClosedEarly(object sender, ProjectDocumentEventArgs e)
        {
            IProjectDocument document      = e.Document;
            SceneDocument    sceneDocument = e.Document.Document as SceneDocument;

            if (sceneDocument == null)
            {
                return;
            }
            List <SceneView> list1 = (List <SceneView>)null;

            if (this.primaryViewsForDocument.TryGetValue(sceneDocument, out list1))
            {
                foreach (SceneView sceneView in new List <SceneView>((IEnumerable <SceneView>)list1))
                {
                    sceneView.SuspendUpdatesForViewShutdown();
                    this.Unregister(sceneView);
                }
            }
            List <SceneView> list2 = (List <SceneView>)null;

            if (!this.relatedViewsForDocument.TryGetValue(sceneDocument, out list2))
            {
                return;
            }
            List <SceneView> list3 = new List <SceneView>((IEnumerable <SceneView>)list2);

            foreach (SceneView sceneView in list3)
            {
                ViewUpdateManager.RelatedDocumentTable relatedDocumentTable = this.relatedDocumentsForView[sceneView];
                this.UnregisterRelatedDocumentInternal(sceneView, sceneDocument);
                relatedDocumentTable.Remove(sceneDocument);
            }
            List <SceneView> list4;

            if (!this.pendingViewsForClosedDocuments.TryGetValue(e.Document, out list4))
            {
                this.pendingViewsForClosedDocuments.Add(e.Document, list3);
            }
            else
            {
                list4.AddRange(Enumerable.Except <SceneView>((IEnumerable <SceneView>)list3, (IEnumerable <SceneView>)list4));
            }
        }
Example #4
0
        public void EnsureViewUpdatesForRelatedDocument(SceneView sceneView, SceneDocument sceneDocument)
        {
            ViewUpdateManager.RelatedDocumentTable relatedDocumentTable;
            if (!this.relatedDocumentsForView.TryGetValue(sceneView, out relatedDocumentTable))
            {
                relatedDocumentTable = new ViewUpdateManager.RelatedDocumentTable();
                this.relatedDocumentsForView[sceneView] = relatedDocumentTable;
            }
            if (sceneDocument == sceneView.Document || relatedDocumentTable.Contains(sceneDocument))
            {
                return;
            }
            IProjectDocument document = sceneDocument.ProjectContext.GetDocument(sceneDocument.DocumentRoot);

            if (ViewUpdateManager.GetDocumentRelation(sceneView, document) != ViewUpdateManager.DocumentRelation.Related || ViewUpdateManager.IsDisposingOrDisposed(sceneDocument.ProjectContext))
            {
                return;
            }
            relatedDocumentTable.Add(sceneDocument);
            this.RegisterRelatedDocumentInternal(sceneView, sceneDocument);
        }
Example #5
0
 public void ExchangeRelatedDocumentHandlers(SceneView firstView, SceneView secondView)
 {
     ViewUpdateManager.RelatedDocumentTable relatedDocumentTable1 = (ViewUpdateManager.RelatedDocumentTable)null;
     this.relatedDocumentsForView.TryGetValue(firstView, out relatedDocumentTable1);
     this.relatedDocumentsForView.Remove(firstView);
     ViewUpdateManager.RelatedDocumentTable relatedDocumentTable2 = (ViewUpdateManager.RelatedDocumentTable)null;
     this.relatedDocumentsForView.TryGetValue(secondView, out relatedDocumentTable2);
     this.relatedDocumentsForView.Remove(secondView);
     if (relatedDocumentTable1 != null)
     {
         foreach (SceneDocument relatedDocument in (IEnumerable <SceneDocument>)relatedDocumentTable1.Documents)
         {
             this.UnregisterRelatedDocumentInternal(firstView, relatedDocument);
         }
         this.relatedDocumentsForView[secondView] = relatedDocumentTable1;
     }
     if (relatedDocumentTable2 != null)
     {
         foreach (SceneDocument relatedDocument in (IEnumerable <SceneDocument>)relatedDocumentTable2.Documents)
         {
             this.UnregisterRelatedDocumentInternal(secondView, relatedDocument);
         }
         this.relatedDocumentsForView[firstView] = relatedDocumentTable2;
         foreach (SceneDocument sceneDocument in (IEnumerable <SceneDocument>)relatedDocumentTable2.Documents)
         {
             this.RegisterRelatedDocumentInternal(firstView, sceneDocument);
         }
     }
     if (relatedDocumentTable1 == null)
     {
         return;
     }
     foreach (SceneDocument sceneDocument in (IEnumerable <SceneDocument>)relatedDocumentTable1.Documents)
     {
         this.RegisterRelatedDocumentInternal(secondView, sceneDocument);
     }
 }