Ejemplo n.º 1
0
 public static void ReduceDrawDepth()
 {
     if (RenderUnit == FrameNodeLevel.Root || RenderUnit == FrameNodeLevel.Year || (int)CurrentCanvasData.ScaleData.DisplayUnit >= (int)RenderUnit + 1)
     {
         return;
     }
     RenderUnit        = (FrameNodeLevel)((int)RenderUnit - 1);
     CurrentCanvasData = TimeTree.GetCanvasData(CurrentCanvasData.StartTime, CurrentCanvasData.EndTime, RenderUnit, CurrentCanvasData.ScaleData.DisplayUnit);
 }
Ejemplo n.º 2
0
 public static void IncreaseDrawDepth()
 {
     if (RenderUnit == FrameNodeLevel.Second)
     {
         return;
     }
     RenderUnit        = (FrameNodeLevel)((int)RenderUnit + 1);
     CurrentCanvasData = TimeTree.GetCanvasData(CurrentCanvasData.StartTime, CurrentCanvasData.EndTime, RenderUnit, CurrentCanvasData.ScaleData.DisplayUnit);
 }
Ejemplo n.º 3
0
        public static void Drill(float startOffset, float endOffset)
        {
            TimeSpan       span = TimeSpan.FromSeconds(endOffset - startOffset);
            FrameNodeLevel canvasSpan, renderUnit;
            DateTime       startTime;
            DateTime       endTime = TimeTree.StartTime.AddSeconds(endOffset);

            if (span > TimeSpan.FromDays(32)) //span is one year
            {
                startTime = TimeTree.StartTime.AddSeconds(startOffset);
                if (startTime.Day != 1)
                {
                    startTime = startTime.AddYears(1);
                }
                startTime  = new DateTime(startTime.Year, 1, 1);
                endTime    = startTime.AddYears(1);
                canvasSpan = FrameNodeLevel.Year;
                renderUnit = FrameNodeLevel.Day;
            }
            else if (span > TimeSpan.FromDays(2)) //span is one month
            {
                startTime = TimeTree.StartTime.AddSeconds(startOffset);
                if (startTime.Day != 1)
                {
                    startTime = startTime.AddMonths(1);
                }
                startTime  = new DateTime(startTime.Year, startTime.Month, 1);
                endTime    = startTime.AddMonths(1);
                canvasSpan = FrameNodeLevel.Month;
                renderUnit = FrameNodeLevel.Hour;
            }

            else if (span > TimeSpan.FromHours(2)) //span is one day
            {
                startTime = TimeTree.StartTime.AddSeconds(startOffset);
                if (startTime.Hour != 0)
                {
                    startTime = startTime.AddDays(1);
                }
                startTime  = new DateTime(startTime.Year, startTime.Month, startTime.Day);
                endTime    = startTime.AddDays(1);
                canvasSpan = FrameNodeLevel.Day;
                renderUnit = FrameNodeLevel.PartHour;
            }
            else if (span > TimeSpan.FromMinutes(20)) //span is one hour
            {
                startTime = TimeTree.StartTime.AddSeconds(startOffset);
                if (startTime.Minute % 6 != 0)
                {
                    startTime = startTime.AddHours(1);
                }
                startTime  = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, 0, 0);
                endTime    = startTime.AddHours(1);
                canvasSpan = FrameNodeLevel.Hour;
                renderUnit = FrameNodeLevel.Minute;
            }
            else if (span > TimeSpan.FromMinutes(2)) //span is one part hour
            {
                startTime = TimeTree.StartTime.AddSeconds(startOffset);
                if (startTime.Minute != 0)
                {
                    startTime = startTime.AddMinutes(10);
                }
                startTime  = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute - (startTime.Minute % 5), 0);
                endTime    = startTime.AddMinutes(5);
                canvasSpan = FrameNodeLevel.PartHour;
                renderUnit = FrameNodeLevel.Second;
            }
            else //span is one minute
            {
                startTime = TimeTree.StartTime.AddSeconds(startOffset);
                if (startTime.Second != 0)
                {
                    startTime = startTime.AddMinutes(1);
                }
                startTime  = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute, 0);
                endTime    = startTime.AddMinutes(1);
                canvasSpan = FrameNodeLevel.Minute;
                renderUnit = FrameNodeLevel.Second;
            }

            UndoStack.Push(CurrentCanvasData);
            CurrentCanvasData = TimeTree.GetCanvasData(startTime, endTime, renderUnit, canvasSpan);
        }