private void LoadTweetsFromJsFiles()
        {
            RunOnUIThread(delegate()
            {
                gridTweets.ItemsSource        = null;
                gridOverlayLoading.Visibility = System.Windows.Visibility.Visible;
                gridContainer.IsEnabled       = false;
            });

            tweetsCollectionView = null;
            notDeletedTweets     = new List <JsonTweet>();

            // If caller already assigned the list of tweets
            if (areTweetsFetchedThroughAPI)
            {
                ;
            }
            else
            {
                List <JsFile> jsFiles = appSettings.JsFiles;
                if (jsFiles == null)
                {
                    //TODO error message here
                    return;
                }

                foreach (JsFile jsFile in jsFiles)
                {
                    RunOnUIThread(delegate()
                    {
                        txtFeedback.Text += "\nLoading tweets: " + jsFile.FriendlyFilename + " " + jsFile.Year;
                    });

                    mTweetsCollection.AddRange(jsFile.ExtractTweets());
                }
            }

            RunOnUIThread(delegate()
            {
                txtFeedback.Text += "\nDone!";
            });

            mTweetsCollection.OrderBy(t => t.Date);

            tweetsCollectionView = CollectionViewSource.GetDefaultView(mTweetsCollection);
            tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("YearAndMonth"));
            // tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Type"));

            RunOnUIThread(delegate()
            {
                gridTweets.ItemsSource           = tweetsCollectionView;
                gridTweets.ItemScrollingBehavior = ItemScrollingBehavior.Deferred;

                gridContainer.IsEnabled       = true;
                txtTotalTweetsNB.Text         = string.Format("(Total tweets: {0})", mTweetsCollection.Count);
                gridOverlayLoading.Visibility = Visibility.Hidden;
            });
        }
Пример #2
0
        private void LoadTweets()
        {
            gridTweets.Dispatcher.BeginInvoke(new Action(delegate()
            {
                gridTweets.ItemsSource        = null;
                gridOverlayLoading.Visibility = System.Windows.Visibility.Visible;
                gridContainer.IsEnabled       = false;
            }));

            tweetsCollectionView = null;
            notDeletedTweets     = new ObservableRangeCollection <tweetTJson>();

            // Called should assign those tweets to 'ObservableRangeCollection<Tweet> tweets' directly
            if (areTweetsFetchedThroughAPI)
            {
                ;
            }
            else
            {
                List <JsFile> jsFiles = appSettings.JsFiles;
                if (jsFiles == null)
                {
                    //TODO error message here
                    return;
                }

                foreach (JsFile jsFile in jsFiles)
                {
                    tweets.AddRange(GetTweetsFromFile(jsFile));
                }
            }

            txtFeedback.Dispatcher.BeginInvoke(new Action(delegate()
            {
                txtFeedback.Text += "\nDone!";
            }));

            tweets.OrderBy(t => t.Date);
            tweetsCollectionView = CollectionViewSource.GetDefaultView(tweets);
            tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("YearMonth"));
            // tweetsCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Type"));

            gridTweets.Dispatcher.BeginInvoke(new Action(delegate()
            {
                gridTweets.ItemsSource = tweetsCollectionView;
                //gridTweets.AutoScrollCurrentItem = Xceed.Wpf.DataGrid.AutoScrollCurrentItemTriggers.CurrentChanged;
                gridTweets.ItemScrollingBehavior = Xceed.Wpf.DataGrid.ItemScrollingBehavior.Deferred;

                gridContainer.IsEnabled       = true;
                txtTotalTweetsNB.Text         = String.Format("(Total tweets: {0})", tweets.Count);
                gridOverlayLoading.Visibility = System.Windows.Visibility.Hidden;
            }));
        }