예제 #1
0
        void SearchCompleted(SearchInfo?result, AdornerLayer layer, OverlayAdorner ad)
        {
            if (!result.HasValue)
            {
                return;
            }

            CallTreeNodeViewModel item = GetViewModelFromPath(result.Value.Result.GetPathRelativeTo(result.Value.ResultRoot), result.Value);

            if (item != null)
            {
                item.IsSelected = true;
                if (oldSearchResult != null)
                {
                    oldSearchResult.IsSelected = false;
                }
                oldSearchResult = item;
            }
            layer.Remove(ad);
        }
예제 #2
0
        void LoadData()
        {
            AdornerLayer   layer = AdornerLayer.GetAdornerLayer(this);
            OverlayAdorner ad    = new OverlayAdorner(this);
            WaitBar        bar   = new WaitBar(Translation.WaitBarText);

            ad.Child = bar;
            layer.Add(ad);
            int    rangeStart = RangeStart;
            int    rangeEnd   = RangeEnd;
            string query      = this.CurrentQuery;

            ProfilingDataProvider provider = Provider;
            QueryCompiler         compiler = new QueryCompiler(Reporter, query);

            ringDiagram.SelectedRoot = null;

            task.Execute(() => LoadWorker(provider, compiler, rangeStart, rangeEnd),
                         list => LoadCompleted(list, layer, ad),
                         delegate { layer.Remove(ad); });
        }
예제 #3
0
        void txtSearchKeyDown(object sender, KeyEventArgs e)
        {
            if (!string.IsNullOrEmpty(txtSearch.Text) && list.Count > 0)
            {
                searchTask.Cancel();
                string text     = txtSearch.Text;
                int    start    = this.RangeStart;
                int    end      = this.RangeEnd;
                var    provider = this.Provider;

                AdornerLayer   layer = AdornerLayer.GetAdornerLayer(this);
                OverlayAdorner ad    = new OverlayAdorner(this);
                WaitBar        bar   = new WaitBar(Translation.WaitBarText);
                ad.Child = bar;
                layer.Add(ad);

                searchTask.Execute(
                    () => DoSearchInBackground(list.Roots.Select(i => i.Node).ToList(), start, end, text, true),
                    result => SearchCompleted(result, layer, ad),
                    delegate { layer.Remove(ad); });
            }
        }
예제 #4
0
		void txtSearchKeyDown(object sender, KeyEventArgs e)
		{
			if (!string.IsNullOrEmpty(txtSearch.Text) && list.Count > 0) {
				searchTask.Cancel();
				string text = txtSearch.Text;
				int start = RangeStart;
				int end = RangeEnd;
				var provider = Provider;
				
				AdornerLayer layer = AdornerLayer.GetAdornerLayer(this);
				OverlayAdorner ad = new OverlayAdorner(this);
				WaitBar bar = new WaitBar(Translation.WaitBarText);
				ad.Child = bar;
				layer.Add(ad);
				
				searchTask.Execute(
					() => DoSearchInBackground(list.Roots.Select(i => i.Node).ToList(), start, end, text, true),
					result => SearchCompleted(result, layer, ad),
					delegate { layer.Remove(ad); });
			}
		}
예제 #5
0
		void LoadCompleted(HierarchyList<CallTreeNodeViewModel> list, AdornerLayer layer, OverlayAdorner ad)
		{
			layer.Remove(ad);
			treeView.ItemsSource = this.list = list;
			if (list != null && list.Count > 0) {
				ringDiagram.SelectedRoot = this.list[0];
				
				foreach (var item in list) {
					var currentItem = item;
					currentItem.RequestBringIntoView += (sender, e) => treeView.ScrollIntoView(e.Node);
				}
			}
		}
예제 #6
0
		void LoadData()
		{
			AdornerLayer layer = AdornerLayer.GetAdornerLayer(this);
			OverlayAdorner ad = new OverlayAdorner(this);
			WaitBar bar = new WaitBar(Translation.WaitBarText);
			ad.Child = bar;
			layer.Add(ad);
			int rangeStart = RangeStart;
			int rangeEnd = RangeEnd;
			string query = CurrentQuery;
			
			ProfilingDataProvider provider = Provider;
			QueryCompiler compiler = new QueryCompiler(Reporter, query);
			ringDiagram.SelectedRoot = null;
			
			task.Execute(() => LoadWorker(provider, compiler, rangeStart, rangeEnd),
			             list => LoadCompleted(list, layer, ad),
			             delegate { layer.Remove(ad); });
		}
예제 #7
0
		void SearchCompleted(SearchInfo? result, AdornerLayer layer, OverlayAdorner ad)
		{
			if (!result.HasValue)
				return;
			
			CallTreeNodeViewModel item = GetViewModelFromPath(result.Value.Result.GetPathRelativeTo(result.Value.ResultRoot), result.Value);
			if (item != null) {
				item.IsSelected = true;
				if (oldSearchResult != null)
					oldSearchResult.IsSelected = false;
				oldSearchResult = item;
			}
			layer.Remove(ad);
		}
예제 #8
0
        void LoadCompleted(HierarchyList <CallTreeNodeViewModel> list, AdornerLayer layer, OverlayAdorner ad)
        {
            layer.Remove(ad);
            treeView.ItemsSource = this.list = list;
            if (list != null && list.Count > 0)
            {
                ringDiagram.SelectedRoot = this.list[0];

                foreach (var item in list)
                {
                    var currentItem = item;
                    currentItem.RequestBringIntoView += (sender, e) => this.treeView.ScrollIntoView(e.Node);
                }
            }
        }