MantisBT - MPfm
View Issue Details
0000373MPfmMVP | Presenterspublic2012-05-27 16:322013-02-23 13:13
ycastonguay 
ycastonguay 
normalfeatureN/A
assignedopen 
 
0.7.0.0 
0000373: Add view/presenter for desktop Library Browser (ILibraryBrowserPresenter/ILibraryBrowserView)
The Presenter controls all the logic for the application. It sends updates to the
view through the ILibraryBrowserView 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-27 16:32ycastonguayNew Issue
2012-05-27 16:32ycastonguayStatusnew => assigned
2012-05-27 16:32ycastonguayAssigned To => ycastonguay
2012-05-27 16:32ycastonguayIssue generated from0000361
2012-05-27 16:33ycastonguayRelationship addedchild of 0000324
2012-05-27 16:34svnCheckin
2012-05-27 16:34svnNote Added: 0000719
2012-05-27 17:39svnCheckin
2012-05-27 17:39svnNote Added: 0000721
2012-05-27 18:29ycastonguayIssue cloned0000374
2012-05-27 21:44svnCheckin
2012-05-27 21:44svnNote Added: 0000725
2012-05-29 19:34svnCheckin
2012-05-29 19:34svnNote Added: 0000731
2012-05-29 20:41svnCheckin
2012-05-29 20:41svnNote Added: 0000734
2012-05-29 20:41svnCheckin
2012-05-29 20:41svnNote Added: 0000736
2012-06-03 11:06svnCheckin
2012-06-03 11:06svnNote Added: 0000741
2012-06-03 18:57svnCheckin
2012-06-03 18:57svnNote Added: 0000743
2012-06-03 21:31svnCheckin
2012-06-03 21:31svnNote Added: 0000748
2012-06-03 21:42svnCheckin
2012-06-03 21:42svnNote Added: 0000751
2012-06-09 15:28svnCheckin
2012-06-09 15:28svnNote Added: 0000755
2012-07-02 13:10svnCheckin
2012-07-02 13:10svnNote Added: 0000802
2012-12-03 20:48svnCheckin
2012-12-03 20:48svnNote Added: 0000871
2013-02-13 18:22ycastonguayIssue cloned0000408
2013-02-23 13:13ycastonguaySummaryAdd the ILibraryBrowserPresenter interface and implement LibraryBrowser\rPresenter => Add view/presenter for desktop Library Browser (ILibraryBrowserPresenter/ILibraryBrowserView)

Notes
(0000719)
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
(0000721)
svn   
2012-05-27 17:39   
The user animal has checked in files related to this issue (revision 515).

Comment:
MPfm 0.6.0.1
* Library
  - MPfmGateway: Added overload to SelectDistinctAlbumTitles (added artistName parameter).
* MVP
  - LibraryBrowserPresenter: Implemented all methods from interface (GetFirstLevelNodes, GetArtistNodes, GetAlbumNodes, GetArtistAlbumNodes).
* GTK
  - MainWindow: Now loading AudioFileFormat combo box dynamically.
  - MainWindow: The Library Browser tree view now contains correct data.

Related to issue 0000366 and issue 0000373.



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.Library/Gateway/IMPfmGateway.cs
U MPfm/branches/current/MPfm.Library/Gateway/MPfmGateway.cs
U MPfm/branches/current/MPfm.MVP/Presenters/ILibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Services/ILibraryService.cs
U MPfm/branches/current/MPfm.MVP/Services/LibraryService.cs
(0000725)
svn   
2012-05-27 21:44   
The user animal has checked in files related to this issue (revision 517).

Comment:
MPfm 0.6.0.1
* MVP
  - Added IAudioFileCacheService/AudioFileCacheService and the AudioFileCache singleton.
    Moved code from SongBrowserPresenter to AudioFileCacheService.
  - LibraryBrowserPresenter, SongBrowserPresenter: Added PlayerPresenter to the constructor arguments.
  - Moved all interfaces to subdirectories.

Related to issue 0000373, issue 0000374 and issue 0000375.


Files modified:
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.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/Cache/
A MPfm/branches/current/MPfm.MVP/Cache/AudioFileCache.cs
U MPfm/branches/current/MPfm.MVP/MPfm.MVP.csproj
D MPfm/branches/current/MPfm.MVP/Presenters/ILibraryBrowserPresenter.cs
D MPfm/branches/current/MPfm.MVP/Presenters/IPlayerPresenter.cs
D MPfm/branches/current/MPfm.MVP/Presenters/ISongBrowserPresenter.cs
D MPfm/branches/current/MPfm.MVP/Presenters/IUpdateLibraryPresenter.cs
A MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/
A MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ILibraryBrowserPresenter.cs
A MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/IPlayerPresenter.cs
A MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ISongBrowserPresenter.cs
A 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
A MPfm/branches/current/MPfm.MVP/Services/AudioFileCacheService.cs
D MPfm/branches/current/MPfm.MVP/Services/ILibraryService.cs
D MPfm/branches/current/MPfm.MVP/Services/IMainService.cs
D MPfm/branches/current/MPfm.MVP/Services/IUpdateLibraryService.cs
A MPfm/branches/current/MPfm.MVP/Services/Interfaces/
A MPfm/branches/current/MPfm.MVP/Services/Interfaces/IAudioFileCacheService.cs
A MPfm/branches/current/MPfm.MVP/Services/Interfaces/ILibraryService.cs
A MPfm/branches/current/MPfm.MVP/Services/Interfaces/IMainService.cs
A MPfm/branches/current/MPfm.MVP/Services/Interfaces/IUpdateLibraryService.cs
(0000731)
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
(0000734)
svn   
2012-05-29 20:41   
The user animal has checked in files related to this issue (revision 519).

Comment:
MPfm 0.6.0.1
* MVP
  - Removed AudioFileCache singleton class.
  - Ninject: Updated bindings (changed PlayerPresenter binding to InSingletonScope).
  - Ninject: Added AudioFileCacheService as a singleton (InSingletonScope).
  - LibraryBrowserPresenter: Added IAudioFileCacheService to constructor.
* GTK
  - Added controls to the PlaylistWindow.

Related to issue 0000356 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/PlaylistWindow.cs
U MPfm/branches/current/MPfm.GTK/gtk-gui/MPfm.GTK.MainWindow.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/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/SongBrowserPresenter.cs
(0000736)
svn   
2012-05-29 20:41   
The user animal has checked in files related to this issue (revision 520).

Comment:
MPfm 0.6.0.1
* MVP
  - Removed AudioFileCache singleton class.
  - Ninject: Updated bindings (changed PlayerPresenter binding to InSingletonScope).
  - Ninject: Added AudioFileCacheService as a singleton (InSingletonScope).
  - LibraryBrowserPresenter: Added IAudioFileCacheService to constructor.
* GTK
  - Added controls to the PlaylistWindow.

Related to issue 0000356 and issue 0000373.


Files modified:
U MPfm/branches/current/MPfm.GTK/gtk-gui/gui.stetic
(0000741)
svn   
2012-06-03 11:06   
The user animal has checked in files related to this issue (revision 525).

Comment:
MPfm 0.6.0.1
* MVP
  - ILibraryBrowserView: Added two RefreshLibraryBrowser methods.
  - LibraryBrowserPresenter: Updated presenter to use the view refresh.
  - Deleted IMainService.cs.
* GTK
  - Updated implementation so that the presenter refreshes the information.

Related to issue 0000373 and issue #377.


Files modified:
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/Interfaces/ILibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
D MPfm/branches/current/MPfm.MVP/Services/Interfaces/IMainService.cs
U MPfm/branches/current/MPfm.MVP/Views/ILibraryBrowserView.cs
(0000743)
svn   
2012-06-03 18:57   
The user animal has checked in files related to this issue (revision 526).

Comment:
MPfm 0.6.0.1
* MVP
  - Added the SongBrowserQueryEntity entity.
  - ISongBrowserView: Added RefreshSongBrowser method.
  - SongBrowserPresenter: Now using the view to update the UI.
  - LibraryBrowserPresenter: Added TreeNodeSelected method, which updates the song browser presenter.
  - AudioFileCacheService: Now using SongBrowserQueryEntity for method parameters.
* GTK
  - Updated implementation.

Related to issue 0000373, issue 0000374, issue 0000375 and issue #378.


Files modified:
U MPfm/branches/current/MPfm.GTK/Windows/MainWindow.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/Models/LibraryBrowserEntity.cs
A MPfm/branches/current/MPfm.MVP/Models/SongBrowserQueryEntity.cs
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ILibraryBrowserPresenter.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/SongBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Services/AudioFileCacheService.cs
U MPfm/branches/current/MPfm.MVP/Services/Interfaces/IAudioFileCacheService.cs
U MPfm/branches/current/MPfm.MVP/Views/ISongBrowserView.cs
(0000748)
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
(0000751)
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
(0000755)
svn   
2012-06-09 15:28   
The user animal has checked in files related to this issue (revision 548).

Comment:
MPfm 0.6.0.1
* Mac
  - The Library Browser can now be browsed successfully. Removed the NSOutlineView header.
  - LibraryBrowserDataSource: Added code to fetch the next NSOutlineView tree node items.
* MVP
  - LibraryBrowserPresenter: Added the TreeExpandable method for Mac OS X in order to refresh the additional nodes for the NSOutlineView.

Related to issue 0000373 and issue 0000381.


Files modified:
U MPfm/branches/current/MPfm.MVP/MPfm.MVP.csproj
U MPfm/branches/current/MPfm.MVP/Presenters/Interfaces/ILibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.MVP/Presenters/LibraryBrowserPresenter.cs
U MPfm/branches/current/MPfm.Mac/MainWindow.designer.cs
U MPfm/branches/current/MPfm.Mac/MainWindow.xib
U MPfm/branches/current/MPfm.Mac/MainWindowController.cs
U MPfm/branches/current/MPfm.Mac/Objects/LibraryBrowserDataSource.cs
(0000802)
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
(0000871)
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