private void documentRegistry_ActiveDocumentChanged(object sender, EventArgs e) { // get the most recent document that can provide a tree view of the UI; // GetActiveDocument would also work, as long as no other component loads documents. ITreeView treeView = m_documentRegistry.GetMostRecentDocument <TreeView>(); if (treeView != null) { treeView = new FilteredTreeView(treeView, DefaultFilter); } // if it's different, switch to it if (!FilteredTreeView.Equals(TreeView, treeView)) { if (TreeView != null) { m_contextRegistry.RemoveContext(TreeView); } TreeView = treeView; UpdateFiltering(this, EventArgs.Empty); if (treeView != null) { m_contextRegistry.ActiveContext = TreeView; } } }
private void ContextRegistry_ActiveContextChanged(object sender, EventArgs e) { IGameContext game = m_contextRegistry.GetActiveContext <IGameContext>(); if (game == null) { TreeView = null; } else { ITreeView treeView = new FilteredTreeView((ITreeView)game, DefaultFilter); // If it's different, switch to it if (!FilteredTreeView.Equals(TreeView, treeView)) { TreeView = treeView; UpdateFiltering(this, EventArgs.Empty); } } if (m_validationContext != null) { m_validationContext.Ended -= ValidationContext_Ended; } m_validationContext = (IValidationContext)game; if (m_validationContext != null) { m_validationContext.Ended += ValidationContext_Ended; } }