diff options
Diffstat (limited to 'Dozentenmodul/src/main/java/ftp/DownloadTask.java')
| -rw-r--r-- | Dozentenmodul/src/main/java/ftp/DownloadTask.java | 81 |
1 files changed, 43 insertions, 38 deletions
diff --git a/Dozentenmodul/src/main/java/ftp/DownloadTask.java b/Dozentenmodul/src/main/java/ftp/DownloadTask.java index 83ad2c15..5592adba 100644 --- a/Dozentenmodul/src/main/java/ftp/DownloadTask.java +++ b/Dozentenmodul/src/main/java/ftp/DownloadTask.java @@ -1,6 +1,6 @@ package ftp; -import gui.image.FTPDownloader_GUI; +import gui.image.FTPEditDownloader_GUI; import java.io.File; import java.io.FileOutputStream; @@ -10,91 +10,90 @@ import javax.swing.JOptionPane; import javax.swing.SwingWorker; /** - * Execute file download in a background thread and update the progress. + * Execute file download in a background thread and update the progress. + * * @author www.codejava.net - * + * */ public class DownloadTask extends SwingWorker<Void, Void> { private static final int BUFFER_SIZE = 4096; - + private String host; private int port; private String username; private String password; - private String downloadPath; private String saveDir; - - @SuppressWarnings("unused") - private FTPDownloader_GUI gui; - + private int percentCompleted; + public DownloadTask(String host, int port, String username, - String password, String downloadPath, String saveDir, - FTPDownloader_GUI gui) { + String password, String downloadPath, String saveDir) { this.host = host; this.port = port; this.username = username; this.password = password; this.downloadPath = downloadPath; this.saveDir = saveDir; - this.gui = gui; - + } /** * Executed in background thread - */ + */ @Override protected Void doInBackground() throws Exception { FTPUtility util = new FTPUtility(host, port, username, password); try { util.connect(); - + byte[] buffer = new byte[BUFFER_SIZE]; int bytesRead = -1; long totalBytesRead = 0; - int percentCompleted = 0; - long start=System.nanoTime(); - final double NANOS_PER_SECOND = 1000000000.0; - final double BYTES_PER_MIB = 1024*1024; + percentCompleted = 0; + long start = System.nanoTime(); + final double NANOS_PER_SECOND = 1000000000.0; + final double BYTES_PER_MIB = 1024 * 1024; long fileSize = util.getFileSize(downloadPath); - //gui.setFileSize(fileSize); - + // gui.setFileSize(fileSize); + String fileName = new File(downloadPath).getName(); - + File downloadFile = new File(saveDir + File.separator + fileName); FileOutputStream outputStream = new FileOutputStream(downloadFile); - + util.downloadFile(downloadPath); InputStream inputStream = util.getInputStream(); - - while ((bytesRead = inputStream.read(buffer)) != -1 && isCancelled()==false) { + + while ((bytesRead = inputStream.read(buffer)) != -1 + && isCancelled() == false) { outputStream.write(buffer, 0, bytesRead); totalBytesRead += bytesRead; - //System.out.println(totalBytesRead); - double speed = NANOS_PER_SECOND / BYTES_PER_MIB * totalBytesRead / (System.nanoTime() - start + 1); + // System.out.println(totalBytesRead); + double speed = NANOS_PER_SECOND / BYTES_PER_MIB + * totalBytesRead / (System.nanoTime() - start + 1); percentCompleted = (int) (totalBytesRead * 100 / fileSize); setProgress(percentCompleted); firePropertyChange("speed", 0, speed); - firePropertyChange("filesize", 0,fileSize); - firePropertyChange("bytesread", 0,totalBytesRead); - + firePropertyChange("filesize", 0, fileSize); + firePropertyChange("bytesread", 0, totalBytesRead); + } outputStream.close(); - + util.finish(); } catch (FTPException ex) { - JOptionPane.showMessageDialog(null, "Error downloading file: " + ex.getMessage(), - "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, + "Error downloading file: " + ex.getMessage(), "Error", + JOptionPane.ERROR_MESSAGE); ex.printStackTrace(); setProgress(0); - cancel(true); + cancel(true); } finally { util.disconnect(); } - + return null; } @@ -103,10 +102,16 @@ public class DownloadTask extends SwingWorker<Void, Void> { */ @Override protected void done() { - if (!isCancelled()) { + if (!isCancelled() && percentCompleted==100) { + System.out.println("Datei erfolgreich heruntergeladen"); + JOptionPane.showMessageDialog(null, + "Datei erfolgreich heruntergeladen.", "Message", + JOptionPane.INFORMATION_MESSAGE); + } else if(!isCancelled() && percentCompleted != 100){ + System.out.println("Datein wurde unvollständig heruntergeladen"); JOptionPane.showMessageDialog(null, - "File has been downloaded successfully!", "Message", + "Datei wurde unvollständig heruntergeladen. Bitte wiederholen.", "Message", JOptionPane.INFORMATION_MESSAGE); } - } + } }
\ No newline at end of file |
