private void addPausesAsResults(IList <ChildTrailResult> splits, int lastNormalSplit, ICollection <IValueRange <DateTime> > pauses, PauseType pauseType) { foreach (IValueRange <DateTime> v in pauses) { //Pauses could extend outside the borders DateTime lower = v.Lower; if (lower == DateTime.MinValue) { lower = m_subResultInfo.Points[0].Time; } DateTime upper = v.Upper; if (upper == DateTime.MaxValue) { upper = m_subResultInfo.Points[m_subResultInfo.Points.Count - 1].Time; } //skip very short pauses TimeSpan duration = upper - lower; if (duration < TimeSpan.FromSeconds(1) && (this.StartTime - lower < TimeSpan.FromSeconds(1) || upper - this.EndTime < TimeSpan.FromSeconds(1))) { continue; } //Match the pause to a split for (int j = 0; j <= lastNormalSplit; j++) { if (splits[j].m_subResultInfo.Points[0].Time > DateTime.MinValue && splits[j].m_subResultInfo.Points[1].Time > DateTime.MinValue && //pause is started within this split (splits[j].m_subResultInfo.Points[0].Time <= lower && lower <= splits[j].m_subResultInfo.Points[1].Time || //(First) lap, ends in the split /*splits[j].*/ m_subResultInfo.Points[0].Time <= upper && upper < splits[j].m_subResultInfo.Points[1].Time || //For splits we want pauses also before after first normal split this.Trail.IsSplits && ( upper < splits[j].m_subResultInfo.Points[0].Time || j == lastNormalSplit && splits[j].m_subResultInfo.Points[1].Time < lower))) { TrailResultInfo t = new TrailResultInfo(this.m_subResultInfo.Activity, this.m_subResultInfo.Reverse); TrailGPSLocation tl = new TrailGPSLocation(PausedChildTrailResult.PauseName(pauseType), false); t.Points.Add(new TrailResultPoint(tl, lower, duration)); t.Points.Add(new TrailResultPoint(tl, upper, TimeSpan.Zero)); PausedChildTrailResult tr = new PausedChildTrailResult(this, splits[j], -1, t, pauseType); if (pauseType == PauseType.RestLap) { if (this.m_lapPauseMapping.ContainsKey(v)) { tr.m_LapInfo = this.m_lapPauseMapping[v]; } } splits.Add(tr); break; } } } }
protected override System.Drawing.FontStyle GetCellFontStyle(object element, TreeList.Column column) { if (element is TrailResultWrapper) { TrailResultWrapper wrapper = (element as TrailResultWrapper); if (wrapper.Result is SummaryTrailResult) { if ((wrapper.Element as SummaryTrailResult).IsTotal) { return(System.Drawing.FontStyle.Bold); } return(System.Drawing.FontStyle.Italic); } else if (wrapper.Result is PausedChildTrailResult) { PausedChildTrailResult pause = wrapper.Result as PausedChildTrailResult; System.Drawing.FontStyle res = System.Drawing.FontStyle.Strikeout; if (pause.pauseType == PauseType.Stopped) { res |= FontStyle.Italic; } if (pause.pauseType == PauseType.Timer) { res |= FontStyle.Bold; } return(res); } else { if (Controller.TrailController.Instance.ReferenceResult != null && wrapper.Result == Controller.TrailController.Instance.ReferenceResult.Result) { return(System.Drawing.FontStyle.Italic); } } } return(base.GetCellFontStyle(element, column)); }