예제 #1
0
 public ReferenceFolderTreeNode(ModuleDefMD module, AssemblyTreeNode parentAssembly, AssemblyListTreeNode assemblyListTreeNode)
 {
     this.module = module;
     this.parentAssembly = parentAssembly;
     this.assemblyListTreeNode = assemblyListTreeNode;
     this.LazyLoading = true;
 }
예제 #2
0
 public ReferenceFolderTreeNode(ModuleDefMD module, AssemblyTreeNode parentAssembly, AssemblyListTreeNode assemblyListTreeNode)
 {
     this.module               = module;
     this.parentAssembly       = parentAssembly;
     this.assemblyListTreeNode = assemblyListTreeNode;
     this.LazyLoading          = true;
 }
예제 #3
0
 internal AssemblyReferenceTreeNode(AssemblyRef r, AssemblyTreeNode parentAssembly, AssemblyListTreeNode assemblyListTreeNode)
 {
     if (parentAssembly == null)
         throw new ArgumentNullException("parentAssembly");
     if (assemblyListTreeNode == null)
         throw new ArgumentNullException("assemblyListTreeNode");
     if (r == null)
         throw new ArgumentNullException("r");
     this.r = r;
     this.assemblyListTreeNode = assemblyListTreeNode;
     this.parentAssembly = parentAssembly;
     this.LazyLoading = true;
 }
예제 #4
0
 internal AssemblyReferenceTreeNode(AssemblyRef r, AssemblyTreeNode parentAssembly, AssemblyListTreeNode assemblyListTreeNode)
 {
     if (parentAssembly == null)
     {
         throw new ArgumentNullException("parentAssembly");
     }
     if (assemblyListTreeNode == null)
     {
         throw new ArgumentNullException("assemblyListTreeNode");
     }
     if (r == null)
     {
         throw new ArgumentNullException("r");
     }
     this.r = r;
     this.assemblyListTreeNode = assemblyListTreeNode;
     this.parentAssembly       = parentAssembly;
     this.LazyLoading          = true;
 }
예제 #5
0
        public MemberPickerVM(Language language, ITreeViewNodeFilter filter, IEnumerable<LoadedAssembly> assemblies)
        {
            this.Language = language;
            this.ShowInternalApi = true;
            this.filter = filter;
            this.origFilter = filter;

            assemblyList = new AssemblyList("Member Picker List", false);
            foreach (var asm in assemblies)
                assemblyList.ForceAddAssemblyToList(asm, true, false, -1, false);

            this.assemblyListTreeNode = new AssemblyListTreeNode(assemblyList);
            this.assemblyListTreeNode.DisableDrop = true;
            if (assemblyListTreeNode.Children.Count > 0)
                SelectedItem = assemblyListTreeNode.Children[0];

            // Make sure we don't hook this event before the assembly list node because we depend
            // on the new asm node being present when we restart the search.
            assemblyList.CollectionChanged += (s, e) => RestartSearch();

            CreateNewFilterSettings();
        }
예제 #6
0
		void ShowAssemblyList(AssemblyList assemblyList)
		{
			history.Clear();
			this.assemblyList = assemblyList;
			
			assemblyList.assemblies.CollectionChanged += assemblyList_Assemblies_CollectionChanged;
			
			assemblyListTreeNode = new AssemblyListTreeNode(assemblyList);
			assemblyListTreeNode.FilterSettings = sessionSettings.FilterSettings.Clone();
			assemblyListTreeNode.Select = SelectNode;
			treeView.Root = assemblyListTreeNode;
			
			if (assemblyList.ListName == AssemblyListManager.DefaultListName)
				this.Title = "ILSpy";
			else
				this.Title = "ILSpy - " + assemblyList.ListName;
		}
예제 #7
0
        void ShowAssemblyListDontAskUser(AssemblyList assemblyList)
        {
            // Clear the cache since the keys contain tree nodes which get recreated now. The keys
            // will never match again so shouldn't be in the cache.
            DecompileCache.Instance.ClearAll();
            UndoCommandManager.Instance.Clear();

            foreach (var tabManager in tabGroupsManager.AllTabGroups.ToArray())
                tabManager.RemoveAllTabStates();
            this.assemblyList = assemblyList;

            // Make sure memory usage doesn't increase out of control. This method allocates lots of
            // new stuff, but the GC doesn't bother to reclaim that memory for a long time.
            GC.Collect();
            GC.WaitForPendingFinalizers();

            assemblyList.CollectionChanged += assemblyList_Assemblies_CollectionChanged;
            assemblyListTreeNode = new AssemblyListTreeNode(assemblyList);
            // Make sure CurrentAssemblyListChanged() is called after the treenodes have been created
            assemblyList.CollectionChanged += assemblyList_Assemblies_CollectionChanged2;
            assemblyListTreeNode.FilterSettings = sessionSettings.FilterSettings.Clone();
            assemblyListTreeNode.Select = SelectNode;
            assemblyListTreeNode.OwnerTreeView = treeView;
            treeView.Root = assemblyListTreeNode;

            UpdateTitle();
        }
예제 #8
0
        void ShowAssemblyList(AssemblyList assemblyList)
        {
            this.assemblyList = assemblyList;

            assemblyListTreeNode = new AssemblyListTreeNode(assemblyList);
            assemblyListTreeNode.FilterSettings = sessionSettings.FilterSettings.Clone();
            assemblyListTreeNode.Select = SelectNode;
            treeView.Root = assemblyListTreeNode;

            if (assemblyList.ListName == AssemblyListManager.DefaultListName)
                this.Title = "ILSpy";
            else
                this.Title = "ILSpy - " + assemblyList.ListName;
        }
        void ShowAssemblyList()
        {
            history.Clear();
            CurrentAssemblyList.assemblies.CollectionChanged += assemblyList_Assemblies_CollectionChanged;

            assemblyListTreeNode = new AssemblyListTreeNode(this.CurrentAssemblyList);
            assemblyListTreeNode.FilterSettings = this.sessionSettings.FilterSettings.Clone();
            assemblyListTreeNode.Select = SelectNode;

            treeView.Root = assemblyListTreeNode;
        }