1717// DEALINGS IN THE SOFTWARE.
1818
1919using System ;
20+ using System . Collections . Generic ;
2021using System . Windows ;
2122
2223using ICSharpCode . Decompiler . TypeSystem ;
24+ using ICSharpCode . ILSpyX ;
25+ using ICSharpCode . ILSpyX . TreeView ;
2326using ICSharpCode . ILSpyX . TreeView . PlatformAbstractions ;
2427
2528namespace ICSharpCode . ILSpy . Analyzers . TreeNodes
@@ -38,6 +41,8 @@ public AnalyzedModuleTreeNode(IModule analyzedModule)
3841
3942 public override object Text => analyzedModule . AssemblyName ;
4043
44+ public override object ToolTip => analyzedModule . MetadataFile ? . FileName ;
45+
4146 protected override void LoadChildren ( )
4247 {
4348 foreach ( var lazy in Analyzers )
@@ -62,5 +67,24 @@ public override void ActivateItem(IPlatformRoutedEventArgs e)
6267 }
6368
6469 public override IEntity Member => null ;
70+
71+ public override bool HandleAssemblyListChanged ( ICollection < LoadedAssembly > removedAssemblies , ICollection < LoadedAssembly > addedAssemblies )
72+ {
73+ if ( analyzedModule == null )
74+ {
75+ return true ;
76+ }
77+ foreach ( LoadedAssembly asm in removedAssemblies )
78+ {
79+ if ( this . analyzedModule . MetadataFile == asm . GetMetadataFileOrNull ( ) )
80+ return false ; // remove this node
81+ }
82+ this . Children . RemoveAll (
83+ delegate ( SharpTreeNode n ) {
84+ AnalyzerTreeNode an = n as AnalyzerTreeNode ;
85+ return an == null || ! an . HandleAssemblyListChanged ( removedAssemblies , addedAssemblies ) ;
86+ } ) ;
87+ return true ;
88+ }
6589 }
6690}
0 commit comments