示例#1
0
        private void AnalyzePairedActivities()
        {
            int           num  = 1;
            List <string> list = new List <string>();

            foreach (ExecutionColumnItem executionColumnItem in ExecutionColumnItems)
            {
                for (int i = 0; i < executionColumnItem.ActivityColumnCount; i++)
                {
                    List <ActivityColumnItem> list2 = new List <ActivityColumnItem>();
                    ActivityColumnItem        activityColumnItem = executionColumnItem[i];
                    if (!activityColumnItem.IsActiveActivity && !list.Contains(activityColumnItem.CurrentActivity.Id))
                    {
                        foreach (ExecutionColumnItem executionColumnItem2 in ExecutionColumnItems)
                        {
                            if (executionColumnItem != executionColumnItem2 && executionColumnItem2[activityColumnItem.CurrentActivity.Id] != null)
                            {
                                list2.Add(executionColumnItem2[activityColumnItem.CurrentActivity.Id]);
                            }
                        }
                        if (list2.Count != 0)
                        {
                            list2.Add(activityColumnItem);
                            foreach (ActivityColumnItem item in list2)
                            {
                                item.PairedActivityIndex = num;
                            }
                            list.Add(activityColumnItem.CurrentActivity.Id);
                            num++;
                        }
                    }
                }
            }
        }
示例#2
0
 private void SetupContextMenuForActivityTitle(Label activityLabel, ActivityColumnItem activityColumnItem, ActivityTraceModeAnalyzer analyzer, WindowlessControlScale scale)
 {
     if (activityLabel != null && activityColumnItem != null)
     {
         PictureBox pictureBox = CreatePictureBox(activityColumnItem, analyzer, scale);
         if (pictureBox != null)
         {
             Point location = activityLabel.Location;
             location.Offset(-pictureBox.Width - 1, (activityLabel.Height - pictureBox.Height) / 2);
             pictureBox.Location = location;
             mainPanel.Controls.Add(pictureBox);
             if (!activityExpandableControls.ContainsKey(activityColumnItem.CurrentActivity.Id))
             {
                 activityExpandableControls.Add(activityColumnItem.CurrentActivity.Id, pictureBox);
             }
         }
     }
 }
        public TraceRecordCellControl(TraceRecordCellItem traceItem, IWindowlessControlContainer parentContainer, Point location, ActivityColumnItem activityColumnItem, ExecutionCellControl executionCellCtrl, IErrorReport errorReport)
            : base(2, parentContainer.GetCurrentScale(), parentContainer, location, errorReport)
        {
            currentTraceRecordItem    = traceItem;
            this.executionCellCtrl    = executionCellCtrl;
            currentActivityColumnItem = activityColumnItem;
            isToChildActivity         = (CurrentTraceRecordItem != null && CurrentTraceRecordItem.IsToChildTransferTrace);
            if (activityColumnItem.IsActiveActivity)
            {
                base.BackColor = activeBackColor;
            }
            else if (activityColumnItem.PairedActivityIndex == 0)
            {
                base.BackColor = defaultBackColor;
            }
            else
            {
                base.BackColor = base.Container.GetRandColorByIndex(activityColumnItem.PairedActivityIndex);
            }
            base.Size = GetControlSize(base.Scale);
            switch (base.Scale)
            {
            case WindowlessControlScale.Normal:
                base.FontSize = 8f;
                break;

            case WindowlessControlScale.Small:
                base.FontSize = 6f;
                break;

            case WindowlessControlScale.XSmall:
                base.FontSize = 3f;
                break;
            }
            if (currentTraceRecordItem != null)
            {
                currentTraceRecordItem.RelatedActivityItem.IncrementDrawnTraceRecordItemCount();
            }
            if (isToChildActivity && CurrentTraceRecordItem.CurrentTraceRecord != null && CurrentTraceRecordItem.CurrentTraceRecord.IsTransfer && CurrentTraceRecordItem.CurrentTraceRecord.ActivityID != CurrentTraceRecordItem.CurrentTraceRecord.RelatedActivityID)
            {
                TraceTransferExpandableIconControl item = new TraceTransferExpandableIconControl(base.Container, this, base.ErrorReport);
                base.ChildControls.Add(item);
            }
        }
示例#4
0
        private PictureBox CreatePictureBox(ActivityColumnItem activityColumnItem, ActivityTraceModeAnalyzer analyzer, WindowlessControlScale scale)
        {
            if (activityColumnItem.CurrentActivity.ActivityType == ActivityType.RootActivity)
            {
                return(null);
            }
            List <TraceRecord> list = null;

            try
            {
                list = activityColumnItem.CurrentActivity.LoadTraceRecords(true, null);
            }
            catch (LogFileException)
            {
                return(null);
            }
            Dictionary <long, TraceRecord> dictionary  = new Dictionary <long, TraceRecord>();
            Dictionary <long, TraceRecord> dictionary2 = new Dictionary <long, TraceRecord>();
            ActivityLabelTag activityLabelTag          = new ActivityLabelTag();

            activityLabelTag.activityColumnItem = activityColumnItem;
            activityLabelTag.analyzer           = analyzer;
            foreach (TraceRecord item in list)
            {
                if (ActivityTraceModeAnalyzer.IsValidForGraphFilter(item, analyzer.ContainsActivityBoundary, analyzer.ContainsVerboseTraces) && (analyzer.Parameters == null || !analyzer.Parameters.SuppressedExecutions.ContainsKey(item.Execution.ExecutionID)))
                {
                    if (item.IsTransfer)
                    {
                        dictionary.Add(item.TraceID, item);
                    }
                    else if (item.Level == TraceEventType.Error || item.Level == TraceEventType.Warning || item.Level == TraceEventType.Critical)
                    {
                        dictionary.Add(item.TraceID, item);
                    }
                    else
                    {
                        dictionary2.Add(item.TraceID, item);
                    }
                }
            }
            List <TraceRecordCellItem> resultTraceRecordItemsForActivity = analyzer.GetResultTraceRecordItemsForActivity(activityColumnItem.CurrentActivity);

            if (resultTraceRecordItemsForActivity != null && resultTraceRecordItemsForActivity.Count != 0 && dictionary.Count != 0 && dictionary2.Count != 0)
            {
                PictureBox pictureBox = new PictureBox();
                pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
                pictureBox.Size     = GetExpandableIconSize(scale);
                pictureBox.Tag      = activityLabelTag;
                pictureBox.Click   += activityPlusBox_Click;
                if (dictionary.Count + dictionary2.Count != resultTraceRecordItemsForActivity.Count)
                {
                    pictureBox.Image = plusImage;
                    activityLabelTag.expectedExpandingLevel = ExpandingLevel.ExpandAll;
                    return(pictureBox);
                }
                foreach (TraceRecordCellItem item2 in resultTraceRecordItemsForActivity)
                {
                    if (item2.CurrentTraceRecord != null && dictionary2.ContainsKey(item2.CurrentTraceRecord.TraceID))
                    {
                        pictureBox.Image = minusImage;
                        activityLabelTag.expectedExpandingLevel = ExpandingLevel.ExpandTransferOut;
                        return(pictureBox);
                    }
                }
            }
            return(null);
        }
 public TraceRecordCellItem(TraceRecord trace, ActivityColumnItem item, ActivityTraceModeAnalyzer analyzer)
 {
     currentTraceRecord  = trace;
     relatedActivityItem = item;
     this.analyzer       = analyzer;
 }