Exemplo n.º 1
0
        private void CloseTab(TabViewModel tabViewModel)
        {
            tabViewModel.HandleTabClosing();
            switch (tabViewModel)
            {
            case SearchTabViewModel searchTabViewModel:
                searchTabViewModel.NonFictionSearchComplete -= SearchTabNonFictionSearchComplete;
                searchTabViewModel.FictionSearchComplete    -= SearchTabFictionSearchComplete;
                searchTabViewModel.SciMagSearchComplete     -= SearchTabSciMagSearchComplete;
                break;

            case NonFictionSearchResultsTabViewModel nonFictionSearchResultsTabViewModel:
                nonFictionSearchResultsTabViewModel.OpenNonFictionDetailsRequested -= OpenNonFictionDetailsRequested;
                break;

            case FictionSearchResultsTabViewModel fictionSearchResultsTabViewModel:
                fictionSearchResultsTabViewModel.OpenFictionDetailsRequested -= OpenFictionDetailsRequested;
                break;

            case SciMagSearchResultsTabViewModel sciMagSearchResultsTabViewModel:
                sciMagSearchResultsTabViewModel.OpenSciMagDetailsRequested -= OpenSciMagDetailsRequested;
                break;

            case NonFictionDetailsTabViewModel nonFictionDetailsTabViewModel:
                nonFictionDetailsTabViewModel.SelectDownloadRequested -= SelectDownloadRequested;
                nonFictionDetailsTabViewModel.CloseTabRequested       -= NonFictionDetailsCloseTabRequested;
                break;

            case FictionDetailsTabViewModel fictionDetailsTabViewModel:
                fictionDetailsTabViewModel.SelectDownloadRequested -= SelectDownloadRequested;
                fictionDetailsTabViewModel.CloseTabRequested       -= FictionDetailsCloseTabRequested;
                break;

            case SciMagDetailsTabViewModel sciMagDetailsTabViewModel:
                sciMagDetailsTabViewModel.SelectDownloadRequested -= SelectDownloadRequested;
                sciMagDetailsTabViewModel.CloseTabRequested       -= SciMagDetailsCloseTabRequested;
                break;
            }
            int removingTabIndex = TabViewModels.IndexOf(tabViewModel);

            TabViewModels.Remove(tabViewModel);
            NotifyPropertyChanged(nameof(IsDefaultSearchTabVisible));
            NotifyPropertyChanged(nameof(AreTabsVisible));
            NotifyPropertyChanged(nameof(IsNewTabButtonVisible));
            if (!TabViewModels.Any())
            {
                SelectedTabViewModel = null;
                DefaultSearchTabViewModel.Refresh(setFocus: true);
            }
            else
            {
                int newSelectedTabIndex = TabViewModels.Count > removingTabIndex ? removingTabIndex : TabViewModels.Count - 1;
                SelectedTabViewModel = TabViewModels[newSelectedTabIndex];
            }
        }
Exemplo n.º 2
0
 private void ShowSearchResults(SearchTabViewModel searchTabViewModel, TabViewModel searchResultsTabViewModel)
 {
     if (searchTabViewModel != DefaultSearchTabViewModel)
     {
         searchTabViewModel.NonFictionSearchComplete -= SearchTabNonFictionSearchComplete;
         searchTabViewModel.FictionSearchComplete    -= SearchTabFictionSearchComplete;
         searchTabViewModel.SciMagSearchComplete     -= SearchTabSciMagSearchComplete;
         TabViewModels.Remove(searchTabViewModel);
     }
     TabViewModels.Add(searchResultsTabViewModel);
     SelectedTabViewModel = searchResultsTabViewModel;
     NotifyPropertyChanged(nameof(IsDefaultSearchTabVisible));
     NotifyPropertyChanged(nameof(AreTabsVisible));
     NotifyPropertyChanged(nameof(IsNewTabButtonVisible));
 }
Exemplo n.º 3
0
        public async Task LoadAsync()
        {
            var instance          = LoginUserInfo.Instance;
            var viewSubscriptions = instance.User.ViewSubscriptions;
            var viewMovies        = instance.User.ViewMovies;


            var viewModelsToAdd    = new List <TabViewModelBase>();
            var viewModelsToRemove = new List <TabViewModelBase>();

            foreach (var tabViewModel in TabViewModels)
            {
                if (tabViewModel.Title == Constants.Welcome)
                {
                    viewModelsToAdd.Add(tabViewModel);
                }
                else if (tabViewModel.Title == Constants.UserManagements)
                {
                    if (instance.Login.IsAdmin)
                    {
                        viewModelsToAdd.Add(tabViewModel);
                    }
                    else
                    {
                        viewModelsToRemove.Add(tabViewModel);
                    }
                }
                else if (tabViewModel.Title == Constants.Subscriptions)
                {
                    if (viewSubscriptions)
                    {
                        viewModelsToAdd.Add(tabViewModel);
                    }
                    else
                    {
                        viewModelsToRemove.Add(tabViewModel);
                    }
                }
                else if (tabViewModel.Title == Constants.Movies)
                {
                    if (viewMovies)
                    {
                        viewModelsToAdd.Add(tabViewModel);
                    }
                    else
                    {
                        viewModelsToRemove.Add(tabViewModel);
                    }
                }
            }

            foreach (var viewModel in viewModelsToRemove)
            {
                TabViewModels.Remove(viewModel);
            }

            foreach (var viewModel in viewModelsToAdd)
            {
                await viewModel.LoadAsync();
            }

            LoginUserName = instance.User.UserName;
        }