2929using System . Reflection . Metadata . Ecma335 ;
3030using System . Threading . Tasks ;
3131using System . Windows ;
32- using System . Windows . Documents ;
3332using System . Windows . Input ;
3433using System . Windows . Navigation ;
3534using System . Windows . Threading ;
4039using ICSharpCode . Decompiler . TypeSystem . Implementation ;
4140using ICSharpCode . ILSpy . AppEnv ;
4241using ICSharpCode . ILSpy . Properties ;
43- using ICSharpCode . ILSpy . TextView ;
42+ using ICSharpCode . ILSpy . TextViewControl ;
4443using ICSharpCode . ILSpy . TreeNodes ;
4544using ICSharpCode . ILSpy . Updates ;
4645using ICSharpCode . ILSpy . ViewModels ;
@@ -57,7 +56,7 @@ namespace ICSharpCode.ILSpy.AssemblyTree
5756{
5857 [ ExportToolPane ]
5958 [ Shared ]
60- public class AssemblyTreeModel : ToolPaneModel
59+ public partial class AssemblyTreeModel : ToolPaneModel
6160 {
6261 public const string PaneContentId = "assemblyListPane" ;
6362
@@ -72,36 +71,6 @@ public class AssemblyTreeModel : ToolPaneModel
7271 private readonly LanguageService languageService ;
7372 private readonly IExportProvider exportProvider ;
7473
75- public AssemblyTreeModel ( SettingsService settingsService , LanguageService languageService , IExportProvider exportProvider )
76- {
77- this . settingsService = settingsService ;
78- this . languageService = languageService ;
79- this . exportProvider = exportProvider ;
80-
81- Title = Resources . Assemblies ;
82- ContentId = PaneContentId ;
83- IsCloseable = false ;
84- ShortcutKey = new KeyGesture ( Key . F6 ) ;
85-
86- MessageBus < NavigateToReferenceEventArgs > . Subscribers += JumpToReference ;
87- MessageBus < SettingsChangedEventArgs > . Subscribers += ( sender , e ) => Settings_PropertyChanged ( sender , e ) ;
88- MessageBus < ApplySessionSettingsEventArgs > . Subscribers += ApplySessionSettings ;
89- MessageBus < ActiveTabPageChangedEventArgs > . Subscribers += ActiveTabPageChanged ;
90- MessageBus < TabPagesCollectionChangedEventArgs > . Subscribers += ( _ , e ) => history . RemoveAll ( s => ! DockWorkspace . TabPages . Contains ( s . TabPage ) ) ;
91- MessageBus < ResetLayoutEventArgs > . Subscribers += ResetLayout ;
92- MessageBus < NavigateToEventArgs > . Subscribers += ( _ , e ) => NavigateTo ( e . Request , e . InNewTabPage ) ;
93- MessageBus < MainWindowLoadedEventArgs > . Subscribers += ( _ , _ ) => {
94- Initialize ( ) ;
95- Show ( ) ;
96- } ;
97-
98- EventManager . RegisterClassHandler ( typeof ( Window ) , Hyperlink . RequestNavigateEvent , new RequestNavigateEventHandler ( ( _ , e ) => NavigateTo ( e ) ) ) ;
99-
100- refreshThrottle = new ( DispatcherPriority . Background , RefreshInternal ) ;
101-
102- AssemblyList = settingsService . CreateEmptyAssemblyList ( ) ;
103- }
104-
10574 private void Settings_PropertyChanged ( object ? sender , PropertyChangedEventArgs e )
10675 {
10776 if ( sender is SessionSettings sessionSettings )
@@ -159,6 +128,7 @@ public SharpTreeNode[] SelectedItems {
159128 var oldSelection = selectedItems ;
160129 selectedItems = value ;
161130 OnPropertyChanged ( ) ;
131+ // TODO: OnPropertyChanged(nameof(SelectedItem));
162132 TreeView_SelectionChanged ( oldSelection , selectedItems ) ;
163133 }
164134 }
@@ -492,24 +462,6 @@ private void assemblyList_CollectionChanged(object? sender, NotifyCollectionChan
492462 MessageBus . Send ( this , new CurrentAssemblyListChangedEventArgs ( e ) ) ;
493463 }
494464
495- private static void LoadInitialAssemblies ( AssemblyList assemblyList )
496- {
497- // Called when loading an empty assembly list; so that
498- // the user can see something initially.
499- System . Reflection . Assembly [ ] initialAssemblies = {
500- typeof ( object ) . Assembly ,
501- typeof ( Uri ) . Assembly ,
502- typeof ( System . Linq . Enumerable ) . Assembly ,
503- typeof ( System . Xml . XmlDocument ) . Assembly ,
504- typeof ( System . Windows . Markup . MarkupExtension ) . Assembly ,
505- typeof ( System . Windows . Rect ) . Assembly ,
506- typeof ( System . Windows . UIElement ) . Assembly ,
507- typeof ( System . Windows . FrameworkElement ) . Assembly
508- } ;
509- foreach ( System . Reflection . Assembly asm in initialAssemblies )
510- assemblyList . OpenAssembly ( asm . Location ) ;
511- }
512-
513465 public AssemblyTreeNode ? FindAssemblyNode ( LoadedAssembly asm )
514466 {
515467 return assemblyListTreeNode ? . FindAssemblyNode ( asm ) ;
@@ -540,6 +492,7 @@ public void SelectNode(SharpTreeNode? node, bool inNewTabPage = false)
540492 }
541493 else
542494 {
495+ // TODO: ExpandAncestors(node);
543496 activeView ? . ScrollIntoView ( node ) ;
544497 SelectedItem = node ;
545498
@@ -838,7 +791,7 @@ public void DecompileSelectedNodes(ViewState? newState = null)
838791 activeTabPage . ShowTextViewAsync ( textView => {
839792 return textView . DecompileAsync ( this . CurrentLanguage , this . SelectedNodes , source , options ) ;
840793 } ) ;
841- }
794+ }
842795
843796 public void RefreshDecompiledView ( )
844797 {
@@ -978,12 +931,13 @@ private void RefreshInternal()
978931 {
979932 var path = GetPathForNode ( SelectedItem ) ;
980933
934+ // TODO: (settingsService.AssemblyListManager.LoadList(AssemblyList.ListName));
981935 ShowAssemblyList ( settingsService . AssemblyListManager . LoadList ( AssemblyList . ListName ) ) ;
982936 SelectNode ( FindNodeByPath ( path , true ) , inNewTabPage : false ) ;
983937
984938 RefreshDecompiledView ( ) ;
985939 }
986- }
940+ }
987941
988942 private void UnselectAll ( )
989943 {
@@ -996,13 +950,22 @@ private IEnumerable<SharpTreeNode> GetTopLevelSelection()
996950 var selectionHash = new HashSet < SharpTreeNode > ( selection ) ;
997951
998952 return selection . Where ( item => item . Ancestors ( ) . All ( a => ! selectionHash . Contains ( a ) ) ) ;
999- }
1000-
1001- public void SetActiveView ( AssemblyListPane activeView )
953+ }
954+
955+ // TODO: void ExpandAncestors(SharpTreeNode node)
956+ // {
957+ // foreach (var ancestor in node.Ancestors().Reverse())
958+ // {
959+ // ancestor.EnsureLazyChildren();
960+ // ancestor.IsExpanded = true;
961+ // }
962+ // }
963+
964+ public void SetActiveView ( AssemblyListPane activeView )
1002965 {
1003966 this . activeView = activeView ;
1004967 }
1005-
968+
1006969 public void SortAssemblyList ( )
1007970 {
1008971 using ( activeView ? . LockUpdates ( ) )
@@ -1095,6 +1058,6 @@ private void ActiveTabPageChanged(object? sender, ActiveTabPageChangedEventArgs
10951058 private void ResetLayout ( object ? sender , ResetLayoutEventArgs e )
10961059 {
10971060 RefreshDecompiledView ( ) ;
1098- }
1061+ }
10991062 }
11001063}
0 commit comments