private void HighlightButton_Click(object sender, EventArgs e) { ListView.SelectedListViewItemCollection si = m_listView.SelectedItems; ProfilerRDI prdiTree = m_logControl.m_prdiTree; foreach (ProfilerRDI prdi in prdiTree.GetEnumerator(ERDIEnumeration.OnlyDrawnLeafNodes)) { prdi.Displayed = false; CheckTreeNodes(prdi.Path, false); } foreach (ListViewItem item in si) { if (prdiTree.ContainsPath(item.Text)) { prdiTree[item.Text].Displayed = true; CheckTreeNodes(item.Text, true); } } m_logControl.SetFrameLengths(); m_logControl.m_prdiTreeView.Refresh(); m_logControl.InvalidateGraphControl(); }
public void SetFrameLengths() { List <ProfilerRDI> displayedPrdis = m_prdiTree.GetEnumerator(ERDIEnumeration.Full).Where(prdi => prdi.Displayed).ToList(); var onlyInLastDisplayedPrdis = m_lastDisplayedPrdis.Except(displayedPrdis); var onlyInDisplayedPrdis = displayedPrdis.Except(m_lastDisplayedPrdis); var changedPrdis = onlyInLastDisplayedPrdis.Union(onlyInDisplayedPrdis).ToArray(); var changedPrdiAncestors = changedPrdis.SelectMany(prdi => prdi.Ancestors()).Distinct(); var changedPaths = changedPrdiAncestors.Select(prdi => prdi.LeafPath); m_lastDisplayedPrdis = displayedPrdis; foreach (LogView logView in m_logViews) { logView.ResetValueStats(changedPaths); logView.CalculateDisplayedValuesAndValueStats(0, logView.m_maxValidBaseIdx, changedPaths); } }