/// <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; }
/// <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; }
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; } }