internal override void PerformSearch(TypeSearchTask searchTask) { if (ClassSearchToolWindow.Instance != null) { ClassSearchToolWindow.Instance.PerformSearch(searchTask); } else { base.PerformSearch(searchTask); } }
private void OnSearchResultsPosted(object sender, AsyncTaskResultPostedEventArgs e) { if ((this._searchTask != null) && (this._searchTask == sender)) { ICollection data = e.Data as ICollection; if ((data != null) && (data.Count != 0)) { try { this._listView.BeginUpdate(); foreach (MemberInfo info in data) { System.Type reflectedType = info as System.Type; string extraData = string.Empty; if (reflectedType == null) { reflectedType = info.ReflectedType; if (this._searchOnly) { extraData = string.Concat(new object[] { info.Name, " [", info.MemberType, "]" }); } } OpenTypeProjectItem item = new OpenTypeProjectItem(reflectedType, this._project); item.EnsureTypeInformation(); ClassViewListViewItem item2 = new ClassViewListViewItem(item, extraData); this._listView.Items.Add(item2); } } finally { this._listView.EndUpdate(); } if (this._statusBar != null) { this._statusBar.SetProgress(Math.Max(10, e.PercentComplete)); this._statusBar.SetText("Searching..."); } this._listView.Focus(); this.UpdateCommands(); } if (e.IsComplete) { this._listView.WatermarkText = "No Classes Found"; if (this._statusBar != null) { this._statusBar.SetProgress(0); this._statusBar.SetText(string.Empty); } this._searchTask = null; } } }
protected override void Dispose(bool disposing) { if (disposing) { if (this._searchTask != null) { this._searchTask.Cancel(); this._searchTask = null; } this._statusBar = null; IProjectManager service = (IProjectManager) this.GetService(typeof(IProjectManager)); } base.Dispose(disposing); }
internal virtual void PerformSearch(TypeSearchTask searchTask) { if (this._searchTask != null) { TypeSearchTask task = this._searchTask; this._searchTask = null; task.Cancel(); } this._listView.Items.Clear(); base.Activate(); this._searchTask = searchTask; this._listView.WatermarkText = "Searching..."; this.Mode = ClassViewToolWindowMode.Search; if (this._statusBar == null) { this._statusBar = (IStatusBar) this.GetService(typeof(IStatusBar)); } if (this._statusBar != null) { this._statusBar.SetProgress(10); this._statusBar.SetText("Searching..."); } this.UpdateCommands(); this._searchTask.Start(new AsyncTaskResultPostedEventHandler(this.OnSearchResultsPosted)); }
bool ICommandHandler.HandleCommand(Microsoft.Matrix.UIComponents.Command command) { bool flag = false; bool flag2 = false; bool flag3 = false; if (command.CommandGroup == typeof(ClassViewCommands)) { switch (command.CommandID) { case 1: { ClassViewProjectData projectData = this._project.ProjectData; ICollection assemblyEntries = projectData.AssemblyEntries; ArrayList list = new ArrayList(assemblyEntries.Count); foreach (ClassViewProjectData.AssemblyEntry entry in assemblyEntries) { try { list.Add(entry.AssemblyName); continue; } catch { continue; } } AssemblyName[] initialList = (AssemblyName[]) list.ToArray(typeof(AssemblyName)); IUIService service = (IUIService) base.ServiceProvider.GetService(typeof(IUIService)); AssemblySelectionDialog form = new AssemblySelectionDialog(base.ServiceProvider, initialList); if (service.ShowDialog(form) == DialogResult.OK) { projectData.ClearAssemblyEntries(); foreach (AssemblyName name in form.SelectedAssemblies) { projectData.AddAssemblyEntry(name); } flag3 = true; } flag = true; break; } case 2: if (this.Mode != ClassViewToolWindowMode.Browse) { ClassViewListViewItem item2 = (ClassViewListViewItem) this._listView.SelectedItems[0]; TypeProjectItem projectItem = item2.ProjectItem; this.OpenTypeView(projectItem.Type); } else { ClassViewTreeNode selectedNode = this._treeView.SelectedNode as ClassViewTreeNode; if (selectedNode != null) { TypeProjectItem item = selectedNode.ProjectItem as TypeProjectItem; if (item != null) { this.OpenTypeView(item.Type); } } } flag = true; break; case 5: { if (this._searchTask != null) { TypeSearchTask task = this._searchTask; this._searchTask = null; task.Cancel(); } string searchValue = command.Text.Trim(); if (searchValue.Length != 0) { this._listView.Items.Clear(); if ((this.SearchMode == ClassViewToolWindowSearchMode.MemberName) && !searchValue.StartsWith("::")) { searchValue = "::" + searchValue; } TypeSearchTask searchTask = TypeSearchTask.CreateSearchTask(this._project.ProjectData, searchValue); if (searchTask != null) { this.PerformSearch(searchTask); } else { IMxUIService service2 = (IMxUIService) this.GetService(typeof(IMxUIService)); if (service2 != null) { string error = "The specified search string did not have a valid syntax.\r\n\r\nUse the following syntax to define your search criteria:\r\n<TypeName> - Search for types by their name.\r\n<Namespace>.<TypeName> - Search for types by their full name.\r\n::<MemberName> - Search for types containing a matching field, property, event or method."; service2.ReportError(error, "Type Search", true); } } } flag = true; break; } case 6: this.SearchMode = ClassViewToolWindowSearchMode.TypeName; flag = true; flag2 = true; break; case 7: this.SearchMode = ClassViewToolWindowSearchMode.MemberName; flag = true; flag2 = true; break; case 10: this._project.ProjectData.SortMode = ClassViewProjectSortMode.Alphabetical; flag3 = true; flag = true; break; case 11: this._project.ProjectData.SortMode = ClassViewProjectSortMode.ByClassType; flag3 = true; flag = true; break; case 12: this._project.ProjectData.SortMode = ClassViewProjectSortMode.ByClassVisibility; flag3 = true; flag = true; break; case 13: this._project.ProjectData.ViewMode = ClassViewProjectViewMode.Assembly; if (this.Mode != ClassViewToolWindowMode.Browse) { this.Mode = ClassViewToolWindowMode.Browse; flag2 = true; } flag3 = true; flag = true; break; case 14: this._project.ProjectData.ViewMode = ClassViewProjectViewMode.Namespace; if (this.Mode != ClassViewToolWindowMode.Browse) { this.Mode = ClassViewToolWindowMode.Browse; flag2 = true; } flag3 = true; flag = true; break; case 15: if (this.Mode != ClassViewToolWindowMode.Search) { this.Mode = ClassViewToolWindowMode.Search; flag2 = true; } flag = true; break; case 0x10: this._project.ProjectData.ShowNonPublicMembers = !this._project.ProjectData.ShowNonPublicMembers; flag3 = true; flag = true; break; } } if (flag3) { this.LoadTree(true); return flag; } if (flag2) { this.UpdateCommands(); } return flag; }
void IClassViewService.ShowType(string searchString) { if ((searchString != null) && (searchString.Length != 0)) { if (this._searchResults == null) { this._searchResults = new ArrayList(); } else { this._searchResults.Clear(); } this._searchString = searchString; if (this._searchTask != null) { this._searchTask.Cancel(); this._searchTask = null; } this._searchTask = TypeSearchTask.CreateSearchTask(this.ProjectData, searchString); this._searchTask.Start(new AsyncTaskResultPostedEventHandler(this.OnSearchResultsPosted)); } }
private void OnSearchResultsPosted(object sender, AsyncTaskResultPostedEventArgs e) { if ((this._searchTask != null) && (this._searchTask == sender)) { ICollection data = e.Data as ICollection; if ((data != null) && (data.Count != 0)) { foreach (System.Type type in data) { this._searchResults.Add(type); } } if (e.IsComplete) { this._searchTask = null; System.Type type2 = null; if (this._searchResults.Count > 0) { foreach (System.Type type3 in this._searchResults) { if (type3.Name.ToLower() == this._searchString.ToLower()) { type2 = type3; break; } } } if (type2 != null) { ((IClassViewService) this).ShowType(type2); } else { IUIService service = (IUIService) base.ServiceProvider.GetService(typeof(IUIService)); if (service != null) { service.ShowMessage("No help found for '" + this._searchString + "'", "Help", MessageBoxButtons.OK); } } this._searchString = null; } } }