Exemplo 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);
 }
Exemplo 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);
 }
Exemplo n.º 3
0
 private static string GetDescendentAttribute(TimeTree <TimedTextElementBase, TimedTextAttributeBase> timedTextElement, string attributeName)
 {
     foreach (var child in timedTextElement.Children)
     {
         var regionNameAttribute = timedTextElement.Attributes.FirstOrDefault(i => i.LocalName == attributeName);
         if (regionNameAttribute != null)
         {
             return(regionNameAttribute.Value);
         }
     }
     return(null);
 }
 private static string GetInheritedAttribute(TimeTree<TimedTextElementBase, TimedTextAttributeBase> timedTextElement, string attributeName)
 {
     var regionNameAttribute = timedTextElement.Attributes.FirstOrDefault(i => i.LocalName == attributeName);
     if (regionNameAttribute == null)
     {
         var parent = timedTextElement.Parent;
         if (parent != null)
         {
             return GetInheritedAttribute(parent, attributeName);
         }
         else
         {
             return null;
         }
     }
     else
     {
         return regionNameAttribute.Value;
     }
 }
Exemplo n.º 5
0
        private static string GetInheritedAttribute(TimeTree <TimedTextElementBase, TimedTextAttributeBase> timedTextElement, string attributeName)
        {
            var regionNameAttribute = timedTextElement.Attributes.FirstOrDefault(i => i.LocalName == attributeName);

            if (regionNameAttribute == null)
            {
                var parent = timedTextElement.Parent;
                if (parent != null)
                {
                    return(GetInheritedAttribute(parent, attributeName));
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(regionNameAttribute.Value);
            }
        }
Exemplo n.º 6
0
 public static FrameElement FindFrameElement(DateTime start, FrameNodeLevel level)
 {
     return(TimeTree.GetFrameElement(start, level));
 }
Exemplo n.º 7
0
 public static FrameElement FindFrameElement(float startOffset, DateTime zeroTime, FrameNodeLevel level)
 {
     return(TimeTree.GetFrameElement(zeroTime.AddSeconds(startOffset), level));
 }
Exemplo n.º 8
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);
        }
 private static string GetDescendentAttribute(TimeTree<TimedTextElementBase, TimedTextAttributeBase> timedTextElement, string attributeName)
 {
     foreach (var child in timedTextElement.Children)
     {
         var regionNameAttribute = timedTextElement.Attributes.FirstOrDefault(i => i.LocalName == attributeName);
         if (regionNameAttribute != null) return regionNameAttribute.Value;
     }
     return null;
 }