MantisBT - MPfm
View Issue Details
0000361MPfmMVP | Presenterspublic2012-05-13 11:482013-03-27 18:35
ycastonguay 
ycastonguay 
normalfeatureN/A
assignedopen 
 
0.7.0.0 
0000361: Add view/presenter for Player user interface (IPlayerPresenter/IPlayerView)
The Presenter controls all the logic for the application. It sends updates to the
view through the IPlayerView interface (for the Main Window).
No tags attached.
child of 0000324assigned ycastonguay Use a MVP-style pattern to centralize code for UI on multiple platforms 
Issue History
2012-05-13 11:48ycastonguayNew Issue
2012-05-13 11:48ycastonguayStatusnew => assigned
2012-05-13 11:48ycastonguayAssigned To => ycastonguay
2012-05-13 12:03ycastonguayRelationship addedchild of 0000324
2012-05-13 12:04ycastonguayIssue cloned0000364
2012-05-17 20:49svnCheckin
2012-05-17 20:49svnNote Added: 0000703
2012-05-21 00:21svnCheckin
2012-05-21 00:21svnNote Added: 0000711
2012-05-27 13:12ycastonguayTarget Version0.7.2.0 => 0.7.0.0
2012-05-27 16:28ycastonguaySummaryAdd the IMainPresenter interface and implement MainPresenter => Add the IPlayerPresenter interface and implement PlayerPresenter
2012-05-27 16:28ycastonguayDescription Updatedbug_revision_view_page.php?rev_id=184#r184
2012-05-27 16:32ycastonguayIssue cloned0000373
2012-05-27 16:34svnCheckin
2012-05-27 16:34svnNote Added: 0000714
2012-05-29 19:34svnCheckin
2012-05-29 19:34svnNote Added: 0000729
2012-05-29 21:34svnCheckin
2012-05-29 21:34svnNote Added: 0000738
2012-05-30 18:10svnCheckin
2012-05-30 18:10svnNote Added: 0000739
2012-06-03 21:31svnCheckin
2012-06-03 21:31svnNote Added: 0000747
2012-06-03 21:42svnCheckin
2012-06-03 21:42svnNote Added: 0000750
2012-06-18 19:29svnCheckin
2012-06-18 19:29svnNote Added: 0000775
2012-06-24 11:15svnCheckin
2012-06-24 11:15svnNote Added: 0000788
2012-06-24 11:28svnCheckin
2012-06-24 11:28svnNote Added: 0000790
2012-07-01 16:36ycastonguayIssue cloned0000384
2012-07-02 13:10svnCheckin
2012-07-02 13:10svnNote Added: 0000801
2012-10-17 21:58svnCheckin
2012-10-17 21:58svnNote Added: 0000855
2012-11-30 20:48svnCheckin
2012-11-30 20:48svnNote Added: 0000860
2012-12-03 20:48svnCheckin
2012-12-03 20:48svnNote Added: 0000870
2013-02-23 13:17ycastonguaySummaryAdd the IPlayerPresenter interface and implement PlayerPresenter => Add view/presenter for Player user interface (IPlayerPresenter/IPlayerView)
2013-03-12 01:34ycastonguayChangeset attached => GitHub - ycastonguay/MPfm master 71c65403
2013-03-23 14:18ycastonguayChangeset attached => GitHub - ycastonguay/MPfm master 7c70eb31
2013-03-27 18:34ycastonguayIssue cloned0000415
2013-03-27 18:35ycastonguayIssue cloned0000416

Notes
(0000703)
svn   
2012-05-17 20:49   
The user animal has checked in files related to this issue (revision 508).

Comment:
MPfm 0.6.0.1
* MVP
  - MainPresenter: Moved Automapper configuration to Bootstrapper.
  - Added the Bootstrapper static class (Singleton) for configuring Ninject and Automapper.
  - Added the LibraryModule class for configuring Ninject.
* GTK
  - Now running the Bootstrapper when creating the application (in Main.cs).

Related to issue 0000361 and issue 0000368.


Files modified:
U MPfm/branches/current/MPfm.GTK/Main.cs
A MPfm/branches/current/MPfm.MVP/Bootstrapper/
A MPfm/branches/current/MPfm.MVP/Bootstrapper/Bootstrapper.cs
A MPfm/branches/current/MPfm.MVP/Bootstrapper/LibraryModule.cs
U MPfm/branches/current/MPfm.MVP/MPfm.MVP.csproj
U MPfm/branches/current/MPfm.MVP/Presenters/MainPresenter.cs
(0000711)
svn   
2012-05-21 00:21   
The user animal has checked in files related to this issue (revision 512).

Comment:
MPfm 0.6.0.1
* Mac
  - Added Update Library window and implemented IUpdateLibraryView.
  - Added Lib folder with AutoMapper and Ninject.
* MVP
  - MainPresenter: Added exception for the CreateConfiguration method.
  - LibraryService: Changed MPfmGateway to IMPfmGateway.
* Library
  - MPfmGateway/IMPfmGateway: Added CompactDatabase method.
  
Related to issue 0000361 and issue 0000366.


Files modified:
U MPfm/branches/current/MPfm.Library/Gateway/IMPfmGateway.cs
U MPfm/branches/current/MPfm.Library/Gateway/MPfmGateway.cs
U MPfm/branches/current/MPfm.MVP/Presenters/MainPresenter.cs
U MPfm/branches/current/MPfm.MVP/Services/LibraryService.cs
U MPfm/branches/current/MPfm.Mac/AppDelegate.designer.cs
A MPfm/branches/current/MPfm.Mac/Lib/
A MPfm/branches/current/MPfm.Mac/Lib/AutoMapper.dll
A MPfm/branches/current/MPfm.Mac/Lib/Ninject.dll
U MPfm/branches/current/MPfm.Mac/MPfm.Mac.csproj
U MPfm/branches/current/MPfm.Mac/MainMenu.xib
U MPfm/branches/current/MPfm.Mac/MainWindowController.cs
A MPfm/branches/current/MPfm.Mac/Windows/
A MPfm/branches/current/MPfm.Mac/Windows/UpdateLibraryWindow.cs
A MPfm/branches/current/MPfm.Mac/Windows/UpdateLibraryWindow.designer.cs
A MPfm/branches/current/MPfm.Mac/Windows/UpdateLibraryWindow.xib
A MPfm/branches/current/MPfm.Mac/Windows/UpdateLibraryWindowController.cs
A MPfm/branches/current/MPfm.Mac/obj/
A MPfm/branches/current/MPfm.Mac/obj/Debug/
A MPfm/branches/current/MPfm.Mac/obj/Debug/monomac_version
A MPfm/branches/current/MPfm.Mac/obj/Debug_MacOSX/
A MPfm/branches/current/MPfm.Mac/obj/Debug_MacOSX/monomac_version
(0000714)
svn   
2012-05-27 16:34   
The user animal has checked in files related to this issue (revision 514).

Comment:
MPfm 0.6.0.1
* MVP
  - Renamed IMainView to IPlayerView.
  - Renamed IMainPresenter to IPlayerPresenter.
  - Added ILibraryBrowserView view (nothing inside yet).
  - Added the LibraryBrowserEntity and SongBrowserFilterEntity classes.
  - Added ConfigurationHelper static class.
  - Added the LibraryBrowserPresenter class.
  - Bootstrapper: Added Ninject configuration for MPfmGateway.
* GTK
  - Now using Ninject to create MPfmGateway.
  - MainWindow: Implemented ILibraryBrowserView and ISongBrowserView views.
  - MainWindow: Now updating the first level nodes of the Library Browser.

Related to issue #360, issue 0000361, issue 0000368, issue 0000370, issue #371, issue #372 and issue 0000373.


Files modified:
U MPfm/branches/current/MPfm.GTK/Main.cs
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.GTK/Windows/UpdateLibraryWindow.cs
U MPfm/branches/current/MPfm.Library/Gateway/MPfmGateway.cs
U MPfm/branches/current/MPfm.MVP/Bootstrapper/Bootstrapper.cs
U MPfm/branches/current/MPfm.MVP/Bootstrapper/LibraryModule.cs
A MPfm/branches/current/MPfm.MVP/Helpers/
A MPfm/branches/current/MPfm.MVP/Helpers/ConfigurationHelper.cs
U MPfm/branches/current/MPfm.MVP/MPfm.MVP.csproj
A MPfm/branches/current/MPfm.MVP/Models/LibraryBrowserEntity.cs
A MPfm/branches/current/MPfm.MVP/Models/SongBrowserFilterEntity.cs
A MPfm/branches/current/MPfm.MVP/Presenters/ILibraryBrowserPresenter.cs
D MPfm/branches/current/MPfm.MVP/Presenters/IMainPresenter.cs
A MPfm/branches/current/MPfm.MVP/Presenters/IPlayerPresenter.cs
A MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
D MPfm/branches/current/MPfm.MVP/Presenters/MainPresenter.cs
A MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Services/ILibraryService.cs
U MPfm/branches/current/MPfm.MVP/Services/LibraryService.cs
A MPfm/branches/current/MPfm.MVP/Views/ILibraryBrowserView.cs
D MPfm/branches/current/MPfm.MVP/Views/IMainView.cs
A MPfm/branches/current/MPfm.MVP/Views/IPlayerView.cs
(0000729)
svn   
2012-05-29 19:34   
The user animal has checked in files related to this issue (revision 518).

Comment:
MPfm 0.6.0.1
* MVP
  - Removed views from all presenter constructors. The views must now be set using the BindView method.
  - LibraryModule: Added Ninject bindings for all presenters.
* GTK
  - The MainWindow is now created by Ninject!
  - MainWindow: Added all presenters in constructor.
  
Related to issue 0000356, issue 0000361, issue 0000364, issue 0000373 and issue 0000374.


Files modified:
U MPfm/branches/current/MPfm.GTK/Main.cs
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.GTK/Windows/UpdateLibraryWindow.cs
U MPfm/branches/current/MPfm.MVP/Bootstrapper/LibraryModule.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ILibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ISongBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IUpdateLibraryPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/SongBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/UpdateLibraryPresenter.cs
(0000738)
svn   
2012-05-29 21:34   
The user animal has checked in files related to this issue (revision 521).

Comment:
MPfm 0.6.0.1
* MVP
  - PlayerPresenter: Added Play(IEnumerable<string> filePaths) overload.
* Mac
  - Updated MainWindowController implementation with PlayerView, SongBrowserView and LibraryBrowserView.
  - Ninject now creates the MainWindowController.

Related to issue 0000356 and issue 0000361.


Files modified:
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.Mac/AppDelegate.cs
U MPfm/branches/current/MPfm.Mac/MPfm.Mac.csproj
U MPfm/branches/current/MPfm.Mac/MainWindowController.cs
U MPfm/branches/current/MPfm.Mac/Windows/UpdateLibraryWindowController.cs
(0000739)
svn   
2012-05-30 18:10   
The user animal has checked in files related to this issue (revision 522).

Comment:
MPfm 0.6.0.1
* MVP
  - PlayerPresenter: Moved CreateLibrary/CreateConfiguration to InitializationService.
* GTK
  - MainWindow: Added IInitializationService to constructor.

Related to issue 0000361 and issue 0000376.


Files modified:
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.GTK/Windows/UpdateLibraryWindow.cs
U MPfm/branches/current/MPfm.GTK/gtk-gui/MPfm.GTK.PlaylistWindow.cs
U MPfm/branches/current/MPfm.MVP/Bootstrapper/LibraryModule.cs
U MPfm/branches/current/MPfm.MVP/MPfm.MVP.csproj
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
A MPfm/branches/current/MPfm.MVP/Services/InitializationService.cs
A MPfm/branches/current/MPfm.MVP/Services/Interfaces/IInitializationService.cs
U MPfm/branches/current/MPfm.Player/IPlayer.cs
(0000747)
svn   
2012-06-03 21:31   
The user animal has checked in files related to this issue (revision 528).

Comment:
MPfm 0.6.0.1

The Library Browser and Song Browser can now be double clicked to start a new playlist. The song position track bar is now updated (but the song position cannot be changed yet).

* MVP
  - LibraryBrowserPresenter: Added the TreeNodeDoubleClicked method.
  - LibraryBrowserPresenter: Added dependency for AudioFileCacheService.
  - SongBrowserPresenter: Added the TableRowDoubleClicked method.
  - PlayerPresenter: Added the Play(IEnumerable<AudioFile> audioFiles, int startPosition) overload.
  - SongInformationEntity: Added more properties.
  - PlayerPositionEntity: Added PositionPercentage property.
* GTK
  - Updated implementation.

Related to issue 0000361, issue 0000373 and issue 0000374.


Files modified:
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.GTK/gtk-gui/MPfm.GTK.MainWindow.cs
U MPfm/branches/current/MPfm.GTK/gtk-gui/gui.stetic
U MPfm/branches/current/MPfm.MVP/Models/PlayerPositionEntity.cs
U MPfm/branches/current/MPfm.MVP/Models/SongInformationEntity.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ILibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ISongBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/SongBrowserPresenter.cs
(0000750)
svn   
2012-06-03 21:42   
The user animal has checked in files related to this issue (revision 529).

Comment:
MPfm 0.6.0.1

* MVP
  - PlayerPresenter: Fixed crash bug when stopping player.
  - LibraryBrowserPresenter: Fixed filter bug when changing sound format filter.

Related to issue 0000361 and issue 0000373.


Files modified:
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
(0000775)
svn   
2012-06-18 19:29   
The user animal has checked in files related to this issue (revision 565).

Comment:
MPfm 0.6.0.1
* MVP
  - Added PlayerVolumeEntity and PlayerTimeShiftingEntity.
  - IPlayerView: Added RefreshPlayerVolume and RefreshPlayerTimeShifting.
* Mac
  - Updated implementation.

Related to issue #360, issue 0000361 and issue 0000381.


Files modified:
U MPfm/branches/current/MPfm.MVP/MPfm.MVP.csproj
A MPfm/branches/current/MPfm.MVP/Models/PlayerTimeShiftingEntity.cs
A MPfm/branches/current/MPfm.MVP/Models/PlayerVolumeEntity.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Views/IPlayerView.cs
U MPfm/branches/current/MPfm.Mac/MainWindowController.cs
(0000788)
svn   
2012-06-24 11:15   
The user animal has checked in files related to this issue (revision 577).

Comment:
MPfm 0.6.0.1
* GTK
  - MainWindow: Now updating player presenter with new song position.
* MVP
  - PlayerPresenter: Added SetPosition method.

Related to issue 0000361 and issue 0000382.


Files modified:
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
(0000790)
svn   
2012-06-24 11:28   
The user animal has checked in files related to this issue (revision 578).

Comment:
MPfm 0.6.0.1
* GTK
  - Updated implementation (added MessageDialog for displaying errors).
* MVP
  - PlayerPresenter: Added try/catch blocks and now reporting errors using IPlayerView.
  - IPlayerView: Added PlayerError method.

Related to issue 0000361 and issue 0000382.



Files modified:
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Views/IPlayerView.cs
(0000801)
svn   
2012-07-02 13:10   
The user animal has checked in files related to this issue (revision 588).

Comment:
MPfm 0.6.0.1
* Mac
  - Added a lot more logging all around.
  - Added assembly info file.
  - Added CocoaHelper class for misc helper methods.
* MVP
  - Added a lot more logging to PlayerPresenter, SongBrowserPresenter and LibraryBrowserPresenter.

Related to issue 0000361, issue 0000373, issue 0000374 and issue 0000381.


Files modified:
U MPfm/branches/current/MPfm.MVP/AssemblyInfo.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/SongBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Services/InitializationService.cs
A MPfm/branches/current/MPfm.Mac/AssemblyInfo.cs
A MPfm/branches/current/MPfm.Mac/Helpers/CocoaHelper.cs
U MPfm/branches/current/MPfm.Mac/MPfm.Mac.csproj
U MPfm/branches/current/MPfm.Mac/MainWindowController.cs
(0000855)
svn   
2012-10-17 21:58   
The user animal has checked in files related to this issue (revision 633).

Comment:
- Fixed a bug in the PlayerPresenter (the playlist index changed event wasn't working since the addition of PlayerService).
- More work on UI in Main Window.

Related to issue 0000361 and issue 0000382.


Files modified:
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.GTK/gtk-gui/MPfm.GTK.MainWindow.cs
U MPfm/branches/current/MPfm.GTK/gtk-gui/gui.stetic
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
(0000860)
svn   
2012-11-30 20:48   
The user animal has checked in files related to this issue (revision 639).

Comment:
Now using ViewFactory for creating Main View.
Added a few ViewModels.
PlayerPresenter: Bug fix crash when quitting the application; the Dispose method is now back.
More bug fixes on the Linux version.

Related to issue 0000361 and issue 0000382.


Files modified:
U MPfm/branches/current/MPfm.GTK/Main.cs
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.MVP/MPfm.MVP.csproj
U MPfm/branches/current/MPfm.MVP/Presenters/BasePresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/EffectsPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/SongBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/SplashPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/UpdateLibraryPresenter.cs
A MPfm/branches/current/MPfm.MVP/ViewModels/
A MPfm/branches/current/MPfm.MVP/ViewModels/BaseViewModel.cs
A MPfm/branches/current/MPfm.MVP/ViewModels/LibraryBrowserViewModel.cs
A MPfm/branches/current/MPfm.MVP/ViewModels/SplashViewModel.cs
U MPfm/branches/current/MPfm.MVP/Views/IBaseView.cs
U MPfm/branches/current/MPfm.MVP/Views/ViewFactory.cs
U MPfm/branches/current/MPfm.Player/Player.cs
U MPfm/branches/current/MPfm.Sound/AudioFiles/AudioFile.cs
(0000870)
svn   
2012-12-03 20:48   
The user animal has checked in files related to this issue (revision 645).

Comment:
GTK: Removed IPlayerPresenter, ISongBrowserPresenter and ILibraryBrowserPresenter from the constructor.
Added actions for IPlayerView, ISongBrowserView and ILibraryBrowserView.
GTK: The MainWindow is now completely disconnected from presenters.

Related to issue #360, issue 0000361, issue 0000373, issue 0000374, issue #377, issue #378 and issue 0000382.


Files modified:
U MPfm/branches/current/MPfm.GTK/Main.cs
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/PlayerPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/SongBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Views/ILibraryBrowserView.cs
U MPfm/branches/current/MPfm.MVP/Views/IPlayerView.cs
U MPfm/branches/current/MPfm.MVP/Views/ISongBrowserView.cs