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); }
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); }
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; } }
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); } }
public static FrameElement FindFrameElement(DateTime start, FrameNodeLevel level) { return(TimeTree.GetFrameElement(start, level)); }
public static FrameElement FindFrameElement(float startOffset, DateTime zeroTime, FrameNodeLevel level) { return(TimeTree.GetFrameElement(zeroTime.AddSeconds(startOffset), level)); }
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; }