Example #1
0
 private void OpenFictionDetailsRequested(object sender, FictionSearchResultsTabViewModel.OpenFictionDetailsEventArgs e)
 {
     Logger.Debug($"Opening fiction book with ID = {e.FictionBook.Id}, Libgen ID = {e.FictionBook.LibgenId}.");
     SearchSettings.DetailsMode openDetailsMode = mainModel.AppSettings.Search.OpenDetailsMode;
     if (openDetailsMode == SearchSettings.DetailsMode.NEW_TAB)
     {
         FictionDetailsTabViewModel fictionDetailsTabViewModel
             = new FictionDetailsTabViewModel(mainModel, CurrentWindowContext, e.FictionBook, isInModalWindow: false);
         fictionDetailsTabViewModel.CloseTabRequested += FictionDetailsCloseTabRequested;
         TabViewModels.Add(fictionDetailsTabViewModel);
         SelectedTabViewModel = fictionDetailsTabViewModel;
     }
     else
     {
         bool modalWindow = openDetailsMode == SearchSettings.DetailsMode.NEW_MODAL_WINDOW;
         FictionDetailsWindowViewModel detailsWindowViewModel = new FictionDetailsWindowViewModel(mainModel, e.FictionBook, modalWindow);
         IWindowContext detailsWindowContext = WindowManager.CreateWindow(RegisteredWindows.WindowKey.FICTION_DETAILS_WINDOW, detailsWindowViewModel, CurrentWindowContext);
         FictionDetailsWindowSettings detailsWindowSettings = mainModel.AppSettings.Fiction.DetailsWindow;
         if (modalWindow)
         {
             detailsWindowContext.ShowDialog(detailsWindowSettings.Width, detailsWindowSettings.Height);
         }
         else
         {
             detailsWindowContext.Show(detailsWindowSettings.Width, detailsWindowSettings.Height);
         }
     }
 }
Example #2
0
 private void OpenSciMagDetailsRequested(object sender, OpenSciMagDetailsEventArgs e)
 {
     Logger.Debug($"Opening article with ID = {e.SciMagArticle.Id}, Libgen ID = {e.SciMagArticle.LibgenId}.");
     SearchSettings.DetailsMode openDetailsMode = MainModel.AppSettings.Search.OpenDetailsMode;
     if (openDetailsMode == SearchSettings.DetailsMode.NEW_TAB)
     {
         SciMagDetailsTabViewModel sciMagDetailsTabViewModel =
             new SciMagDetailsTabViewModel(MainModel, CurrentWindowContext, e.SciMagArticle, isInModalWindow: false);
         sciMagDetailsTabViewModel.SelectDownloadRequested += SelectDownloadRequested;
         sciMagDetailsTabViewModel.CloseTabRequested       += SciMagDetailsCloseTabRequested;
         TabViewModels.Add(sciMagDetailsTabViewModel);
         SelectedTabViewModel = sciMagDetailsTabViewModel;
     }
     else
     {
         bool modalWindow = openDetailsMode == SearchSettings.DetailsMode.NEW_MODAL_WINDOW;
         SciMagDetailsWindowViewModel detailsWindowViewModel = new SciMagDetailsWindowViewModel(MainModel, e.SciMagArticle, modalWindow);
         detailsWindowViewModel.SelectDownloadRequested += SelectDownloadRequested;
         IWindowContext detailsWindowContext = WindowManager.CreateWindow(RegisteredWindows.WindowKey.SCI_MAG_DETAILS_WINDOW, detailsWindowViewModel, CurrentWindowContext);
         SciMagDetailsWindowSettings detailsWindowSettings = MainModel.AppSettings.SciMag.DetailsWindow;
         if (modalWindow)
         {
             detailsWindowContext.ShowDialog(detailsWindowSettings.Width, detailsWindowSettings.Height);
             detailsWindowViewModel.SelectDownloadRequested -= SelectDownloadRequested;
         }
         else
         {
             detailsWindowViewModel.WindowClosed += SciMagDetailsWindowClosed;
             detailsWindowContext.Show(detailsWindowSettings.Width, detailsWindowSettings.Height);
         }
     }
 }
Example #3
0
 private void OpenNonFictionDetailsRequested(object sender, OpenNonFictionDetailsEventArgs e)
 {
     Logger.Debug($"Opening non-fiction book with ID = {e.NonFictionBook.Id}, Libgen ID = {e.NonFictionBook.LibgenId}.");
     SearchSettings.DetailsMode openDetailsMode = MainModel.AppSettings.Search.OpenDetailsMode;
     if (openDetailsMode == SearchSettings.DetailsMode.NEW_TAB)
     {
         NonFictionDetailsTabViewModel nonFictionDetailsTabViewModel =
             new NonFictionDetailsTabViewModel(MainModel, CurrentWindowContext, e.NonFictionBook, isInModalWindow: false);
         nonFictionDetailsTabViewModel.SelectDownloadRequested += SelectDownloadRequested;
         nonFictionDetailsTabViewModel.CloseTabRequested       += NonFictionDetailsCloseTabRequested;
         TabViewModels.Add(nonFictionDetailsTabViewModel);
         SelectedTabViewModel = nonFictionDetailsTabViewModel;
     }
     else
     {
         bool modalWindow = openDetailsMode == SearchSettings.DetailsMode.NEW_MODAL_WINDOW;
         NonFictionDetailsWindowViewModel detailsWindowViewModel = new NonFictionDetailsWindowViewModel(MainModel, e.NonFictionBook, modalWindow);
         detailsWindowViewModel.SelectDownloadRequested += SelectDownloadRequested;
         IWindowContext detailsWindowContext = WindowManager.CreateWindow(RegisteredWindows.WindowKey.NON_FICTION_DETAILS_WINDOW, detailsWindowViewModel, CurrentWindowContext);
         NonFictionDetailsWindowSettings detailsWindowSettings = MainModel.AppSettings.NonFiction.DetailsWindow;
         if (modalWindow)
         {
             detailsWindowContext.ShowDialog(detailsWindowSettings.Width, detailsWindowSettings.Height);
             detailsWindowViewModel.SelectDownloadRequested -= SelectDownloadRequested;
         }
         else
         {
             detailsWindowViewModel.WindowClosed += NonFictionDetailsWindowClosed;
             detailsWindowContext.Show(detailsWindowSettings.Width, detailsWindowSettings.Height);
         }
     }
 }
Example #4
0
        /// <summary>
        /// Initializes a new instance of the ViewModelLocator class.
        /// </summary>
        public ViewModelLocator()
        {
            ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

            ////if (ViewModelBase.IsInDesignModeStatic)
            ////{
            ////    // Create design time view services and models
            ////    SimpleIoc.Default.Register<IDataService, DesignDataService>();
            ////}
            ////else
            ////{
            ////    // Create run time view services and models
            ////    SimpleIoc.Default.Register<IDataService, DataService>();
            ////}

            SimpleIoc.Default.Register <MainViewModel>();
            SimpleIoc.Default.Register <BasicThreadFoobarViewModel>();
            SimpleIoc.Default.Register <PoolFoobarViewModel>();
            SimpleIoc.Default.Register <GoTapFoobarViewModel>();
            SimpleIoc.Default.Register <AsyncKeywordFoobarViewModel>();
            SimpleIoc.Default.Register <CustomAwaitFoobarViewModel>();
            TabViewModels.Add(CustomAwait);
            TabViewModels.Add(AsyncKeyword);
            TabViewModels.Add(GoTapFoobar);
            TabViewModels.Add(PoolFoobar);
            TabViewModels.Add(BasicThreadFoobar);
        }
Example #5
0
 private void NewTab()
 {
     if (IsNewTabButtonVisible)
     {
         SearchTabViewModel searchTabViewModel = new SearchTabViewModel(MainModel, CurrentWindowContext);
         searchTabViewModel.NonFictionSearchComplete += SearchTabNonFictionSearchComplete;
         searchTabViewModel.FictionSearchComplete    += SearchTabFictionSearchComplete;
         searchTabViewModel.SciMagSearchComplete     += SearchTabSciMagSearchComplete;
         TabViewModels.Add(searchTabViewModel);
         SelectedTabViewModel = searchTabViewModel;
         NotifyPropertyChanged(nameof(IsNewTabButtonVisible));
     }
 }
Example #6
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));
 }
Example #7
0
        public AdbGridViewModel(IDefaultPhoneInfoContainer container)
        {
            this.Container   = container;
            SelectedTabModel = InfoDetailTabModel;

            TabViewModels.Add(InfoDetailTabModel);
            SelectedTabModel = InfoDetailTabModel;

            if (MInfoTypeHelper.GetMInfoTypeBox(container.InfoType) == MInfoTypeBox.AdbFile)
            {
                TabViewModels.Add(FileHexTabViewModel);
                if (container.InfoType == MInfoType.Image)
                {
                    TabViewModels.Add(AdbPreviewViewModel);
                }
            }
        }
Example #8
0
        private void ShowDownloadManager()
        {
            DownloadManagerTabViewModel downloadManagerTabViewModel = DownloadManagerTabViewModel;

            if (downloadManagerTabViewModel == null)
            {
                downloadManagerTabViewModel = new DownloadManagerTabViewModel(MainModel, CurrentWindowContext);
                TabViewModels.Add(downloadManagerTabViewModel);
                SelectedTabViewModel = downloadManagerTabViewModel;
                NotifyPropertyChanged(nameof(IsDefaultSearchTabVisible));
                NotifyPropertyChanged(nameof(AreTabsVisible));
                NotifyPropertyChanged(nameof(IsNewTabButtonVisible));
            }
            else
            {
                SelectedTabViewModel = downloadManagerTabViewModel;
            }
        }
Example #9
0
        private void LibraryMenuItemClick()
        {
            LibraryTabViewModel libraryTabViewModel = LibraryTabViewModel;

            if (libraryTabViewModel == null)
            {
                libraryTabViewModel = new LibraryTabViewModel(MainModel, CurrentWindowContext);
                libraryTabViewModel.OpenNonFictionDetailsRequested += OpenNonFictionDetailsRequested;
                libraryTabViewModel.OpenFictionDetailsRequested    += OpenFictionDetailsRequested;
                libraryTabViewModel.OpenSciMagDetailsRequested     += OpenSciMagDetailsRequested;
                TabViewModels.Add(libraryTabViewModel);
                SelectedTabViewModel = libraryTabViewModel;
                NotifyPropertyChanged(nameof(IsDefaultSearchTabVisible));
                NotifyPropertyChanged(nameof(AreTabsVisible));
                NotifyPropertyChanged(nameof(IsNewTabButtonVisible));
            }
            else
            {
                SelectedTabViewModel = libraryTabViewModel;
            }
        }
Example #10
0
        private void BookmarksMenuItemClick(BookmarkViewModel bookmarkViewModel)
        {
            bool useCurrentTab;

            if (SelectedTabViewModel != null)
            {
                switch (bookmarkViewModel.LibgenObjectType)
                {
                case LibgenObjectType.NON_FICTION_BOOK:
                    useCurrentTab = SelectedTabViewModel is NonFictionSearchResultsTabViewModel;
                    break;

                case LibgenObjectType.FICTION_BOOK:
                    useCurrentTab = SelectedTabViewModel is FictionSearchResultsTabViewModel;
                    break;

                case LibgenObjectType.SCIMAG_ARTICLE:
                    useCurrentTab = SelectedTabViewModel is SciMagSearchResultsTabViewModel;
                    break;

                default:
                    useCurrentTab = false;
                    break;
                }
            }
            else
            {
                useCurrentTab = false;
            }
            if (useCurrentTab)
            {
                (SelectedTabViewModel as SearchResultsTabViewModel).Search(bookmarkViewModel.SearchQuery);
            }
            else
            {
                SearchResultsTabViewModel newTab;
                switch (bookmarkViewModel.LibgenObjectType)
                {
                case LibgenObjectType.NON_FICTION_BOOK:
                    NonFictionSearchResultsTabViewModel nonFictionNewTab = new NonFictionSearchResultsTabViewModel(MainModel, CurrentWindowContext,
                                                                                                                   bookmarkViewModel.SearchQuery, new List <NonFictionBook>());
                    nonFictionNewTab.OpenNonFictionDetailsRequested += OpenNonFictionDetailsRequested;
                    newTab = nonFictionNewTab;
                    break;

                case LibgenObjectType.FICTION_BOOK:
                    FictionSearchResultsTabViewModel fictionNewTab = new FictionSearchResultsTabViewModel(MainModel, CurrentWindowContext,
                                                                                                          bookmarkViewModel.SearchQuery, new List <FictionBook>());
                    fictionNewTab.OpenFictionDetailsRequested += OpenFictionDetailsRequested;
                    newTab = fictionNewTab;
                    break;

                case LibgenObjectType.SCIMAG_ARTICLE:
                    SciMagSearchResultsTabViewModel sciMagNewTab = new SciMagSearchResultsTabViewModel(MainModel, CurrentWindowContext,
                                                                                                       bookmarkViewModel.SearchQuery, new List <SciMagArticle>());
                    sciMagNewTab.OpenSciMagDetailsRequested += OpenSciMagDetailsRequested;
                    newTab = sciMagNewTab;
                    break;

                default:
                    newTab = null;
                    break;
                }
                if (newTab != null)
                {
                    newTab.Search(bookmarkViewModel.SearchQuery);
                    TabViewModels.Add(newTab);
                    SelectedTabViewModel = newTab;
                    NotifyPropertyChanged(nameof(IsDefaultSearchTabVisible));
                    NotifyPropertyChanged(nameof(AreTabsVisible));
                    NotifyPropertyChanged(nameof(IsNewTabButtonVisible));
                }
            }
        }