コード例 #1
0
        /// <summary>
        /// Konstruktor.
        /// </summary>
        /// <param name="viewManager">Obiekt menadżera widoków.</param>
        /// <param name="view">Obiekt zarządzanego przez prezentera widoku.</param>
        /// <param name="subtitlesManager">Obiekt menadżera zarządzającego obiektami reprezentującymi napisy.</param>
        /// <param name="cancellationToken">
        /// Obiekt przechowujący informację o anulowaniu zamykania widoku.
        /// Wykorzystywany jeśli prezenter zapisu jest używany przy pytaniu o zapisanie zmian przed zamknięciem aplikacji,
        /// by móc anulować zmykanie w przypadku anuloawania zapisu
        /// </param>
        public SaveFilePresenter(IViewManager viewManager, ISaveFileView view, SubtitlesManager subtitlesManager, ViewCloseCancellationToken cancellationToken)
            : base(viewManager, view)
        {
            this.subtitlesManager = subtitlesManager;

            this.View.Filter        = GetFileFilters();
            this.View.DialogClosed += new EventHandler <KWinFramework.Views.WinForms.Dialogs.DialogClosedEventArgs>(DialogClosedHandler);

            this.cancellationToken = cancellationToken;
        }
コード例 #2
0
        /// <summary>
        /// Konstruktor.
        /// </summary>
        /// <param name="viewManager">Obiekt menadżera widoków.</param>
        /// <param name="view">Obiekt zarządzanego przez prezentera widoku.</param>
        /// <param name="subtitlesManager">Obiekt menadżera napsiów.</param>
        /// <param name="cancelatlionToken">Obiekt informacji o anulowaniu zamykania widoku.</param>
        public SaveBeforeClosePresenter(
            IViewManager viewManager,
            ISaveBeforeCloseView view,
            SubtitlesManager subtitlesManager,
            ViewCloseCancellationToken cancelatlionToken)
            : base(viewManager, view)
        {
            this.subtitlesManager = subtitlesManager;

            this.View.Save      += new EventHandler(SaveHandler);
            this.View.DoNotSave += new EventHandler(DoNotSaveHandler);
            this.View.Cancel    += new EventHandler(CancelHandler);

            this.cancellationToken = cancelatlionToken;
        }
コード例 #3
0
        private void ViewPreCloseRequestHandler(object sender, ViewPreCloseEventArgs e)
        {
            var currentSubtitles = subtitlesManager.CurrentSubtitles;

            if ((!currentSubtitles.IsSaved) && (!String.IsNullOrEmpty(currentSubtitles.Content)))
            {
                ViewCloseCancellationToken mainViewCloseCancellationToken = new ViewCloseCancellationToken(e.CancelViewClose);

                ISaveBeforeCloseView     view      = new SaveBeforeCloseView();
                SaveBeforeClosePresenter presenter = new SaveBeforeClosePresenter(ViewManager, view, subtitlesManager, mainViewCloseCancellationToken);

                ViewManager.AddView(view);
                ViewManager.ShowView(view);
                //Zamyka się sam.
                ViewManager.RemoveView(view);

                e.CancelViewClose = mainViewCloseCancellationToken.Cancel;
            }
        }