The Media application consists of the following components:
- Music database, package goedegep.media.mediadb
- Music folder, package goedegep.media.musicfolder
- Photoshow builder and Photoshow viewer, package goedegep.media.photo.photoshow
- Photo map view, package goedegep.media.photo.photomapview
- Video database, package goedegep.media.videodb
- Dune, package goedegep.media.dune
An overview of the implementation is show in the following figure.
Package goedegep.media.exe
This package holds the classes to start the application.
Class MediaWrapper
This class is the entyry point for the Media executable. The class doesn’t do anything else than calling MediaApplication.main(args). This wrapper is needed because if the main class extends from javafx.application.Application the executable doesn’t work.
Class MediaApplication
This class is the main entry point for the Media JavaFX application. Like all MyWorld applications, the class extends JfxApplication.
This class uses the MediaService to start the Media menu window by calling MediaService.getInstance().showMediaMenuWindow().
Package goedegep.media.svc
This package only holds the media service.
Class MediaService
This class extends the goedegep.myworld.common.Service class, which is a template for services.
This service provides methods to start the main windows of the components.
Package goedegep.media.mediadb.logic
This package contains the logic related to the media database application.
Class MediaDbService
This class is a service on top of a media database. It provides methods to:
- add an album, artist or track to the database
- get the media database or its EMFResource
- open the album details window
- save the media database
TODO
Utility methods:
There will be many utility methods on the data model, which would polute the model. Therefore all methods are in goedegep.media.mediadb.model.util.MediaDbUtil.
All information related to the Music Folder is in ..musicfolder
The link between the music database en the Music Folder is under ..mediadb.logic
Albums <-> Music Folder
Most normal cases:
- Complete album available
‘I have on’ is set at album level
All tracks of the album are in the folder <letter>/<artist>/<date>-<artist>-<album-title> - Some tracks of the album available in a separate folder (new excerpt album)
This is the case if you like some tracks of an album, but also there are some tracks you don’t like.
The database has a separate excerpt album, for which holds ‘complete album available’
All tracks of the album that you have are in the folder <letter>/<artist>/<date>-<artist>-<album-title>-excerpt
In the database the album has a reference to this excerpt album and all tracks refer to the tracks of the excerpt album. - Some tracks of the album are available as part of a compilation album.
The database has this ‘own compilation album’.
The album has a reference to this album and all tracks refer to the tracks in this ‘own compilation album’.
For the ‘own compilation album’ holds ‘complete album available’ - Some tracks of the album are part of a track collection.
The available tracks refer to the tracks in the track collections.
Other options are not supported.

