public void CreateTimelineCalculator( string calendarType, DateTime currentDateTime, DateTime minDateTime, DateTime maxDateTime ) { Debug.Assert(this.TimelineTray != null); ItemsSource = new TimelineCalendar(calendarType, m_timelineType, minDateTime, maxDateTime); ItemsSource.TimeFormat24 = TimeFormat24; m_calendarType = calendarType; if (ItemTemplate == null) { ItemTemplate = DefaultItemTemplate; } if (TextItemTemplate == null) { TextItemTemplate = DefaultTextItemTemplate; } if (ShortEventTemplate == null) { ShortEventTemplate = DefaultShortEventTemplate; } if (EventTemplate == null) { EventTemplate = DefaultEventTemplate; } if (m_calc != null) { m_calc.ClearEvents(); m_calc.ClearColumns(); } m_calc = new TimelineBuilder( this, CanvasPart, ItemTemplate, TextItemTemplate, TimelineWindowSize, ItemsSource, !IsMainBand ? ShortEventTemplate : EventTemplate, MaxEventHeight, IsMainBand, currentDateTime); m_calc.BuildColumns(); m_calcInitialized = true; }
private string GetDataContext( long index ) { if (m_timeline.IsValidIndex(index)) { return(TimelineCalendar.ItemToString(m_timeline, m_timeline[index])); } else { return(string.Empty); } }
public TimelineBuilder( TimelineBand band, Canvas canvas, DataTemplate template, DataTemplate textTemplate, int columnCount, TimelineCalendar timeline, DataTemplate eventTemplate, double maxEventHeight, bool assignRows, DateTime currDateTime ) { SingleDelayedInvoke poolBuilder; Debug.Assert(template != null); Debug.Assert(canvas != null); Debug.Assert(eventTemplate != null); Debug.Assert(band != null); Debug.Assert(columnCount > 0); Debug.Assert(timeline != null); Debug.Assert(maxEventHeight > 0); m_parent = band; m_eventTemplate = eventTemplate; m_canvas = canvas; m_template = template;; //m_columnCount = columnCount; m_columnCount = 24; m_timeline = timeline; m_assignRows = assignRows; m_markerTemplate = textTemplate; m_visibleEvents = new Dictionary <TimelineEvent, object>(); m_dispEvents = new Dictionary <TimelineEvent, TimelineDisplayEvent>(); m_maxEventHeight = maxEventHeight; CurrentDateTime = currDateTime; // // precreate some elements, so that we can later take them from pool // poolBuilder = new SingleDelayedInvoke(); for (int i = 0; i < INITIAL_EVENT_POOL_SIZE; ++i) { m_elementPool.Push((UIElement)CreateEventElement()); } Utilities.Trace(this); }
private string GetDataContext( int index ) { return(TimelineCalendar.ItemToString(ItemsSource, ItemsSource[index])); }
public static string ItemToString( TimelineCalendar src, DateTime value ) { DateTime d; string ret; TimelineCalendarType type; Debug.Assert(src as TimelineCalendar != null); Debug.Assert(value != null); d = (DateTime) value; type = ((TimelineCalendar) src).LineType; switch (type) { case TimelineCalendarType.Decades: ret = DateTimeConverter.GetDecades(d); break; case TimelineCalendarType.Years: ret = DateTimeConverter.GetYear(d); break; case TimelineCalendarType.Months: ret = DateTimeConverter.GetMonth(d); break; case TimelineCalendarType.Days: ret = DateTimeConverter.GetDay(d); break; case TimelineCalendarType.Hours: if (!src.m_is24hFormat) { ret = d.ToString("h tt"); //ret = d.ToString("dd/MM h tt"); } else { ret = d.ToString("HH"); } break; case TimelineCalendarType.Minutes10: if (d.Minute == 0) { ret = d.Hour.ToString() + ":00"; } else { ret = ((d.Minute / 10) * 10).ToString(); } break; case TimelineCalendarType.Minutes: ret = d.ToString("mm"); break; case TimelineCalendarType.Seconds: ret = d.Second.ToString(); break; case TimelineCalendarType.Milliseconds100: ret = (d.Millisecond / 100).ToString(); break; case TimelineCalendarType.Milliseconds10: ret = (d.Millisecond / 10).ToString(); break; case TimelineCalendarType.Milliseconds: ret = (d.Millisecond).ToString(); break; default: throw new ArgumentOutOfRangeException(); } return ret; }
public static string ItemToString( TimelineCalendar src, DateTime value ) { DateTime d; string ret; TimelineCalendarType type; Debug.Assert(src as TimelineCalendar != null); Debug.Assert(value != null); d = (DateTime)value; type = ((TimelineCalendar)src).LineType; switch (type) { case TimelineCalendarType.Decades: ret = DateTimeConverter.GetDecades(d); break; case TimelineCalendarType.Years: ret = DateTimeConverter.GetYear(d); break; case TimelineCalendarType.Months: ret = DateTimeConverter.GetMonth(d); break; case TimelineCalendarType.Days: ret = DateTimeConverter.GetDay(d); break; case TimelineCalendarType.Hours: if (!src.m_is24hFormat) { ret = d.ToString("h tt"); //ret = d.ToString("dd/MM h tt"); } else { ret = d.ToString("HH"); } break; case TimelineCalendarType.Minutes10: if (d.Minute == 0) { ret = d.Hour.ToString() + ":00"; } else { ret = ((d.Minute / 10) * 10).ToString(); } break; case TimelineCalendarType.Minutes: ret = d.ToString("mm"); break; case TimelineCalendarType.Seconds: ret = d.Second.ToString(); break; case TimelineCalendarType.Milliseconds100: ret = (d.Millisecond / 100).ToString(); break; case TimelineCalendarType.Milliseconds10: ret = (d.Millisecond / 10).ToString(); break; case TimelineCalendarType.Milliseconds: ret = (d.Millisecond).ToString(); break; default: throw new ArgumentOutOfRangeException(); } return(ret); }