示例#1
0
        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();
        }
示例#2
0
        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);
            }
        }