void StreamsTab_TabItemSelected(object sender, TabItemEventArgs e) { var ti = (OverviewColumnTabItem)e.TabItem; var stream = ti.Content as RealtimeStream; if (stream == null) { if (ti.Channel == null && String.IsNullOrEmpty(ti.Keyword)) { ClientStats.LogEventWithSegment("Change tab in realtime streams overview column", "All streams"); // All docked accounts tab stream = new RealtimeStream(ti.Channel, ti.Keyword) { IsColumnView = true }; } else { ClientStats.LogEventWithSegment("Change tab in realtime streams overview column", ti.Channel.Configuration.DisplayName); stream = ControlCache.Get(ti.Channel, ti.Keyword, true); stream.UpdateDockState(); // Disconnect from any parent that might hold the visual tree for our element if (stream.Parent != null) { ((ContentControl)stream.Parent).Content = null; } stream.AfterUndock = delegate { stream.StatusUpdated -= Stream_StatusUpdated; stream.AfterUndock = null; }; } stream.StatusUpdated += Stream_StatusUpdated; ti.Content = stream; } // Updates visual appearance of tab control depending of wether we have a sub-tab or not StreamsTab.Tag = stream.SupportsMentions ? "StreamColumnWithMentions" : "StreamColumn"; OnPropertyChanged("Channel"); }
internal static RealtimeStream Get(ChannelInstance channel, string keyword, bool isColumnView) { RealtimeStream stream; if (!String.IsNullOrEmpty(keyword)) { // Search stream if (!searchDict.ContainsKey(keyword)) { stream = new RealtimeStream(channel, keyword); searchDict.Add(keyword, stream); } // Return cached copy var view = searchDict[keyword]; view.IsColumnView = isColumnView; return view; } else { if (!channelsDict.ContainsKey(channel)) { stream = new RealtimeStream(channel, keyword); channelsDict.Add(channel, stream); } var view = channelsDict[channel]; view.IsColumnView = isColumnView; // Return cached copy return view; } }
internal static RealtimeStream Get(ChannelInstance channel, string keyword, bool isColumnView) { RealtimeStream stream; if (!String.IsNullOrEmpty(keyword)) { // Search stream if (!searchDict.ContainsKey(keyword)) { stream = new RealtimeStream(channel, keyword); searchDict.Add(keyword, stream); } // Return cached copy var view = searchDict[keyword]; view.IsColumnView = isColumnView; return(view); } else { if (!channelsDict.ContainsKey(channel)) { stream = new RealtimeStream(channel, keyword); channelsDict.Add(channel, stream); } var view = channelsDict[channel]; view.IsColumnView = isColumnView; // Return cached copy return(view); } }
void StreamsTab_TabItemSelected(object sender, TabItemEventArgs e) { var ti = (OverviewColumnTabItem)e.TabItem; var stream = ti.Content as RealtimeStream; if (stream == null) { if (ti.Channel == null && String.IsNullOrEmpty(ti.Keyword)) { ClientStats.LogEventWithSegment("Change tab in realtime streams overview column", "All streams"); // All docked accounts tab stream = new RealtimeStream(ti.Channel, ti.Keyword) { IsColumnView = true }; } else { ClientStats.LogEventWithSegment("Change tab in realtime streams overview column", ti.Channel.Configuration.DisplayName); stream = ControlCache.Get(ti.Channel, ti.Keyword, true); stream.UpdateDockState(); // Disconnect from any parent that might hold the visual tree for our element if (stream.Parent != null) ((ContentControl)stream.Parent).Content = null; stream.AfterUndock = delegate { stream.StatusUpdated -= Stream_StatusUpdated; stream.AfterUndock = null; }; } stream.StatusUpdated += Stream_StatusUpdated; ti.Content = stream; } // Updates visual appearance of tab control depending of wether we have a sub-tab or not StreamsTab.Tag = stream.SupportsMentions ? "StreamColumnWithMentions" : "StreamColumn"; OnPropertyChanged("Channel"); }