private void OnControlAndDataComlete(
object sender,
EventArgs e
)
{
TimeSpan visibleWindow;
List<TimelineEvent> events = new List<TimelineEvent>();
TimelineDisplayEvent.MoreLinkText = MoreLinkText;
TimelineDisplayEvent.TeaserSize = TeaserSize;
m_currentDateTime = CurrentDateTime;
#if SILVERLIGHT
if (m_notifier != null)
{
m_notifier.StreamList.ForEach(s => events.AddRange(LoadEventDocument(XDocument.Load(s, LoadOptions.None))));
}
#else
if (m_notifier != null)
{
foreach (Stream s in m_notifier.StreamList)
{
System.Xml.XmlTextReader reader;
reader = new System.Xml.XmlTextReader(s);
events.AddRange(LoadEventDocument(XDocument.Load(reader, LoadOptions.None)));
}
}
#endif
if (m_notifier != null && m_notifier.StreamList.Count > 0)
{
m_eventStore = new TimelineEventStore(events);
}
if (m_mainBand == null)
{
throw new Exception("At least one main timeline band should be specified");
}
m_mainBand.CreateTimelineCalculator(
CalendarType,
CurrentDateTime,
MinDateTime,
MaxDateTime
);
m_bands.ForEach(b => b.CreateTimelineCalculator(CalendarType, CurrentDateTime, MinDateTime, MaxDateTime));
//
// now we need to calculate visible timeline window and
// assign it to all timelineband controls
//
visibleWindow = m_mainBand.Calculator.MaxVisibleDateTime - m_mainBand.Calculator.MinVisibleDateTime;
foreach (TimelineBand band in m_bands)
{
band.VisibleTimeSpan = visibleWindow;
//band.VisibleTimeSpan = TimeSpan.FromDays(1);
band.ResetVisibleDaysHighlight();
band.Calculator.BuildColumns();
band.OnCurrentDateChanged += OnCurrentDateChanged;
if (band.IsMainBand)
{
band.OnSelectionChanged += OnSelectionChanged;
}
}
m_notifier = null;
m_initialized = true;
RefreshEvents(false);
if (TimelineReady != null)
{
TimelineReady(this, new EventArgs());
}
}