示例#1
0
 internal void NavigateFilmScreening(Screening screening)
 {
     if (FilmsDialogController != null)
     {
         FilmsDialogController.CloseDialog();
     }
     if (FilmInfoController != null)
     {
         FilmInfoController.CloseDialog();
     }
     if (AnalyserDialogController != null)
     {
         AnalyserDialogController.CloseDialog();
     }
     Controller.GoToScreening(screening);
 }
        public override void NeedsUpdate(NSMenu menu)
        {
            // Define some aliases for improved readability.
            ViewController             viewController          = _app.Controller;
            FilmRatingDialogController ratingController        = _app.FilmsDialogController;
            ScreeningDialogController  screeningInfoController = viewController.ScreeningInfoDialog;
            FilmInfoDialogController   filmInfoController      = _app.FilmInfoController;
            AnalyserDialogController   analyserController      = _app.AnalyserDialogController;

            // Process every item in the menu
            foreach (NSMenuItem item in menu.Items)
            {
                // If the Combine or Uncombine film dialog is active, all menu
                // items must be inactive.
                if (_app.CombineTitleController != null || _app.UncombineTitleController != null)
                {
                    item.Enabled = false;
                    continue;
                }

                // Take action based on the menu tag.
                switch (item.Tag)
                {
                case _showFilmsMenuItemTag:
                    item.Enabled = ratingController == null && viewController.ViewIsActive();
                    break;

                case _toggleOnlyFilmsWithScreeningsMenuItemTag:
                    item.Enabled = ratingController != null;
                    break;

                case _toggleTypeMatchMethodMenuItemTag:
                    item.Enabled = ratingController != null;
                    break;

                case _showFilmInfoMenuItemTag:
                    item.Enabled = screeningInfoController != null ||
                                   viewController.RunningPopupsCount == 0 ||
                                   (ratingController != null &&
                                    !ratingController.TextBeingEdited &&
                                    ratingController.OneFilmSelected() &&
                                    filmInfoController == null);
                    break;

                case _visitFilmWebsiteMenuItemTag:
                    item.Enabled = screeningInfoController != null ||
                                   viewController.RunningPopupsCount == 0 ||
                                   (ratingController != null &&
                                    !ratingController.TextBeingEdited &&
                                    ratingController.OneFilmSelected()) ||
                                   filmInfoController != null ||
                                   (analyserController != null &&
                                    analyserController.GetSelectedFilm() != null);
                    break;

                case _combineTitlesMenuItemTag:
                    item.Enabled = ratingController != null &&
                                   !ratingController.TextBeingEdited &&
                                   ratingController.MultipleFilmsSelected();
                    break;

                case _uncombineTitleMenuItemTag:
                    item.Enabled = ratingController != null &&
                                   !ratingController.TextBeingEdited &&
                                   ratingController.OneFilmSelected();
                    break;

                default:
                    item.Enabled = false;
                    break;
                }
            }
        }
 void IFilmOutlinable.Cleanup()
 {
     AnalyserDialogController.CleanupOutlinables(FilmOutlinables);
 }