private void OnControlLoaded( object sender, RoutedEventArgs e ) { Utilities.Trace(this); if (!m_loaded) { HookChildElements(this.Children); if (m_bands.Count > 0 && m_mainBand != null) { // we are in silverlight mode, so all bands and urls are specified in // xaml and we can start data load immediately m_isJavascriptMode = false; m_notifier = new DataControlNotifier(m_dataUrls, m_bands); m_notifier.LoadComplete += OnControlAndDataComlete; m_notifier.Start(); m_notifier.CheckCompleted(); } else { // we will need to wait till Run method is called from javascript m_isJavascriptMode = true; m_notifier = new DataControlNotifier(); m_notifier.LoadComplete += OnControlAndDataComlete; } m_loaded = true; } // Do not remove copyright notice AddCopyrightElement(); }
public void Reload( ) { if (m_bands.Count > 0 && m_mainBand != null) { m_isJavascriptMode = false; m_notifier = new DataControlNotifier(m_dataUrls, m_bands); m_notifier.LoadComplete += OnControlAndDataComlete; m_notifier.Start(); m_notifier.CheckCompleted(); } }
/// /// <summary> /// This happens when we have all data and all timeline band controls have /// completed resizing, so we ready to show content</summary> /// 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()); } }
/// /// <summary> /// This happens when we have all data and all timeline band controls have /// completed resizing, so we ready to show content</summary> /// 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()); } }