Beispiel #1
0
        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;
                    }
                }
            }
        }
Beispiel #2
0
 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));
 }