/** Initializes the reporter and show the download dialog if it is not suppressed */ private void setupAndShowDialog() { if (null != pReporter) { pReporter.setName( MessageText.getString("fileDownloadWindow.state_downloading") + ": " + getFileName(decoded_url)); pReporter.appendDetailMessage( MessageText.getString("fileDownloadWindow.downloading") + getShortURL(decoded_url)); pReporter.setTitle(MessageText.getString("fileDownloadWindow.title")); pReporter.setIndeterminate(true); pReporter.setCancelAllowed(true); pReporter.setRetryAllowed(true); /* * Listen to and respond to events from the reporters */ pReporter.addListener( new IProgressReporterListener() { public int report(IProgressReport pReport) { switch (pReport.getReportType()) { case REPORT_TYPE_CANCEL: if (null != downloader) { downloader.cancel(); // KN: correct logger id? Logger.log( new LogEvent( LogIDs.LOGGER, MessageText.getString( "FileDownload.canceled", new String[] {getShortURL(decoded_url)}))); } break; case REPORT_TYPE_DONE: return RETVAL_OK_TO_DISPOSE; case REPORT_TYPE_RETRY: if (true == pReport.isRetryAllowed()) { downloader.cancel(); downloader = TorrentDownloaderFactory.create( FileDownloadWindow.this, original_url, referrer, request_properties, dirName); downloader.setIgnoreReponseCode(true); downloader.start(); } break; default: break; } return RETVAL_OK; } }); ProgressReporterWindow.open(pReporter, ProgressReporterWindow.AUTO_CLOSE); } }