Switch to Actions instead of events to pass actions between Presenters and Views

This commit is contained in:
Anton Kasyanov
2016-06-08 22:33:38 +03:00
parent c596857fbc
commit 25ab51bdbe
7 changed files with 66 additions and 56 deletions

View File

@@ -14,9 +14,9 @@ namespace EveOPreview.UI
void RefreshThumbnails(); void RefreshThumbnails();
void SetupThumbnailFrames(); void SetupThumbnailFrames();
event Action<IList<IThumbnailView>> ThumbnailsAdded; Action<IList<IThumbnailView>> ThumbnailsAdded { get; set; }
event Action<IList<IThumbnailView>> ThumbnailsUpdated; Action<IList<IThumbnailView>> ThumbnailsUpdated { get; set; }
event Action<IList<IThumbnailView>> ThumbnailsRemoved; Action<IList<IThumbnailView>> ThumbnailsRemoved { get; set; }
event Action<Size> ThumbnailSizeChanged; Action<Size> ThumbnailSizeChanged { get; set; }
} }
} }

View File

@@ -35,19 +35,19 @@ namespace EveOPreview.UI
this._thumbnailDescriptionViews = new Dictionary<IntPtr, IThumbnailDescriptionView>(); this._thumbnailDescriptionViews = new Dictionary<IntPtr, IThumbnailDescriptionView>();
this._exitApplication = false; this._exitApplication = false;
this.View.FormActivated += Activate; this.View.FormActivated = this.Activate;
this.View.FormMinimized += Minimize; this.View.FormMinimized = this.Minimize;
this.View.FormCloseRequested += Close; this.View.FormCloseRequested = this.Close;
this.View.ApplicationSettingsChanged += SaveApplicationSettings; this.View.ApplicationSettingsChanged = this.SaveApplicationSettings;
this.View.ThumbnailsSizeChanged += UpdateThumbnailsSize; this.View.ThumbnailsSizeChanged = this.UpdateThumbnailsSize;
this.View.ThumbnailStateChanged += UpdateThumbnailState; this.View.ThumbnailStateChanged = this.UpdateThumbnailState;
this.View.ForumUrlLinkActivated += OpenForumUrlLink; this.View.ForumUrlLinkActivated = this.OpenForumUrlLink;
this.View.ApplicationExitRequested += ExitApplication; this.View.ApplicationExitRequested = this.ExitApplication;
this._thumbnailManager.ThumbnailsAdded += ThumbnailsAdded; this._thumbnailManager.ThumbnailsAdded = this.ThumbnailsAdded;
this._thumbnailManager.ThumbnailsUpdated += ThumbnailsUpdated; this._thumbnailManager.ThumbnailsUpdated = this.ThumbnailsUpdated;
this._thumbnailManager.ThumbnailsRemoved += ThumbnailsRemoved; this._thumbnailManager.ThumbnailsRemoved = this.ThumbnailsRemoved;
this._thumbnailManager.ThumbnailSizeChanged += ThumbnailSizeChanged; this._thumbnailManager.ThumbnailSizeChanged = this.ThumbnailSizeChanged;
} }
private void Activate() private void Activate()

View File

@@ -47,10 +47,13 @@ namespace EveOPreview.UI
this._thumbnailUpdateTimer.Interval = new TimeSpan(0, 0, 0, 0, configuration.ThumbnailRefreshPeriod); this._thumbnailUpdateTimer.Interval = new TimeSpan(0, 0, 0, 0, configuration.ThumbnailRefreshPeriod);
} }
public event Action<IList<IThumbnailView>> ThumbnailsAdded; public Action<IList<IThumbnailView>> ThumbnailsAdded { get; set; }
public event Action<IList<IThumbnailView>> ThumbnailsUpdated;
public event Action<IList<IThumbnailView>> ThumbnailsRemoved; public Action<IList<IThumbnailView>> ThumbnailsUpdated { get; set; }
public event Action<Size> ThumbnailSizeChanged;
public Action<IList<IThumbnailView>> ThumbnailsRemoved { get; set; }
public Action<Size> ThumbnailSizeChanged { get; set; }
public void Activate() public void Activate()
{ {
@@ -206,11 +209,11 @@ namespace EveOPreview.UI
view.SetWindowFrames(this._configuration.ShowThumbnailFrames); view.SetWindowFrames(this._configuration.ShowThumbnailFrames);
view.Location = this._configuration.GetThumbnailLocation(processTitle, this._activeClientTitle, view.Location); view.Location = this._configuration.GetThumbnailLocation(processTitle, this._activeClientTitle, view.Location);
view.ThumbnailResized += ThumbnailViewResized; view.ThumbnailResized = this.ThumbnailViewResized;
view.ThumbnailMoved += ThumbnailViewMoved; view.ThumbnailMoved = this.ThumbnailViewMoved;
view.ThumbnailFocused += ThumbnailViewFocused; view.ThumbnailFocused = this.ThumbnailViewFocused;
view.ThumbnailLostFocus += ThumbnailViewLostFocus; view.ThumbnailLostFocus = this.ThumbnailViewLostFocus;
view.ThumbnailActivated += ThumbnailActivated; view.ThumbnailActivated = this.ThumbnailActivated;
this._thumbnailViews.Add(processHandle, view); this._thumbnailViews.Add(processHandle, view);
@@ -259,11 +262,11 @@ namespace EveOPreview.UI
this._thumbnailViews.Remove(processHandle); this._thumbnailViews.Remove(processHandle);
// TODO Remove hotkey here // TODO Remove hotkey here
view.ThumbnailResized -= ThumbnailViewResized; view.ThumbnailResized = null;
view.ThumbnailMoved -= ThumbnailViewMoved; view.ThumbnailMoved = null;
view.ThumbnailFocused -= ThumbnailViewFocused; view.ThumbnailFocused = null;
view.ThumbnailLostFocus -= ThumbnailViewLostFocus; view.ThumbnailLostFocus = null;
view.ThumbnailActivated -= ThumbnailActivated; view.ThumbnailActivated = null;
view.Close(); view.Close();

View File

@@ -295,14 +295,21 @@ namespace EveOPreview.UI
this.ZoomAnchorPanel.Enabled = enableControls; this.ZoomAnchorPanel.Enabled = enableControls;
} }
public event Action ApplicationExitRequested; public Action ApplicationExitRequested { get; set; }
public event Action FormActivated;
public event Action FormMinimized; public Action FormActivated { get; set; }
public event Action<ViewCloseRequest> FormCloseRequested;
public event Action ApplicationSettingsChanged; public Action FormMinimized { get; set; }
public event Action ThumbnailsSizeChanged;
public event Action<IntPtr> ThumbnailStateChanged; public Action<ViewCloseRequest> FormCloseRequested { get; set; }
public event Action ForumUrlLinkActivated;
public Action ApplicationSettingsChanged { get; set; }
public Action ThumbnailsSizeChanged { get; set; }
public Action<IntPtr> ThumbnailStateChanged { get; set; }
public Action ForumUrlLinkActivated { get; set; }
#region UI events #region UI events
private void OptionChanged_Handler(object sender, EventArgs e) private void OptionChanged_Handler(object sender, EventArgs e)

View File

@@ -82,15 +82,15 @@ namespace EveOPreview.UI
} }
} }
public event Action<IntPtr> ThumbnailResized; public Action<IntPtr> ThumbnailResized { get; set; }
public event Action<IntPtr> ThumbnailMoved; public Action<IntPtr> ThumbnailMoved { get; set; }
public event Action<IntPtr> ThumbnailFocused; public Action<IntPtr> ThumbnailFocused { get; set; }
public event Action<IntPtr> ThumbnailLostFocus; public Action<IntPtr> ThumbnailLostFocus { get; set; }
public event Action<IntPtr> ThumbnailActivated; public Action<IntPtr> ThumbnailActivated { get; set; }
public new void Show() public new void Show()
{ {

View File

@@ -40,13 +40,13 @@ namespace EveOPreview.UI
void RemoveThumbnails(IList<IThumbnailDescriptionView> thumbnails); void RemoveThumbnails(IList<IThumbnailDescriptionView> thumbnails);
void RefreshZoomSettings(); void RefreshZoomSettings();
event Action ApplicationExitRequested; Action ApplicationExitRequested { get; set; }
event Action FormActivated; Action FormActivated { get; set; }
event Action FormMinimized; Action FormMinimized { get; set; }
event Action<ViewCloseRequest> FormCloseRequested; Action<ViewCloseRequest> FormCloseRequested { get; set; }
event Action ApplicationSettingsChanged; Action ApplicationSettingsChanged { get; set; }
event Action ThumbnailsSizeChanged; Action ThumbnailsSizeChanged { get; set; }
event Action<IntPtr> ThumbnailStateChanged; Action<IntPtr> ThumbnailStateChanged { get; set; }
event Action ForumUrlLinkActivated; Action ForumUrlLinkActivated { get; set; }
} }
} }

View File

@@ -26,10 +26,10 @@ namespace EveOPreview.UI
void Refresh(); void Refresh();
event Action<IntPtr> ThumbnailResized; Action<IntPtr> ThumbnailResized { get; set; }
event Action<IntPtr> ThumbnailMoved; Action<IntPtr> ThumbnailMoved { get; set; }
event Action<IntPtr> ThumbnailFocused; Action<IntPtr> ThumbnailFocused { get; set; }
event Action<IntPtr> ThumbnailLostFocus; Action<IntPtr> ThumbnailLostFocus { get; set; }
event Action<IntPtr> ThumbnailActivated; Action<IntPtr> ThumbnailActivated { get; set; }
} }
} }