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++; } } } } }
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); } }
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; }