public void startDownloader(String typeId, List typeIDs, boolean startOnceAndLeave) {
// Use a new instance of the downloader
// Otherwise it will get problems if more than one download is
// started by the user via the GUI to test the download.
// The second download would not start.
DownloadTimer timer = this.initDownloader(); // Creates a new instance
// Set the Downloader. It will do all the work started as Thread.
timer.setFeedbackReceiver(this);
// Choose how often the timer checks if something has to be downloaded
timer.setSeconds(300); // Every 5 minutes
timer.setCurrentDownloadTypeId(typeId);
// Set the list of type Ids, e.g. maps.earth or maps.moon
// If null the downloader will ignore the list and take the type.id
timer.setCurrentDownloadTypeIDs(typeIDs);
timer.setRunOnceAndLeave(startOnceAndLeave);
// The starter is needed due to the SwingWorkerStuff. Main Purpose:
// the GUI must not freeze.
DownloadStarter starter = new DownloadStarter();
starter.setTimer(timer);
starter.execute();