diff options
author | Stephan Schwär | 2020-10-16 09:05:24 +0200 |
---|---|---|
committer | Stephan Schwär | 2020-10-16 09:05:24 +0200 |
commit | 0b9fb1a088faba8182cb841f64b9cc620b0b0f3d (patch) | |
tree | d7d44a0d7360b30e8f18f22e93e586344090d320 /dozentenmodul/src/main/java/org/openslx/dozmod/util | |
parent | [client] Unset description file on conversion cancel (diff) | |
download | tutor-module-0b9fb1a088faba8182cb841f64b9cc620b0b0f3d.tar.gz tutor-module-0b9fb1a088faba8182cb841f64b9cc620b0b0f3d.tar.xz tutor-module-0b9fb1a088faba8182cb841f64b9cc620b0b0f3d.zip |
[client] Improve cancel handling and feedback to user
- cancelled worker no longer overwrites progressbar text
- ask to delete temp directory of cancelled conversion when leavin page
Feature: #3771
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/util')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java index a5a4fa77..3e305e5f 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java @@ -19,7 +19,8 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> { private File srcFile; private File destFile; private ImageOvfConversionPage page; - Process process = null; + private Process process = null; + private String conversionCancelledText = "Konvertierung abgebrochen!"; public ConversionTaskWorker(File srcFile, File destFile, ImageOvfConversionPage page) { this.srcFile = srcFile; @@ -30,8 +31,7 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> { @Override protected Boolean doInBackground() throws Exception { try { - process = new ProcessBuilder("ovftool", srcFile.getAbsolutePath(), destFile.getAbsolutePath()) - .start(); + process = new ProcessBuilder("ovftool", srcFile.getAbsolutePath(), destFile.getAbsolutePath()).start(); } catch (IOException e) { return false; } @@ -54,6 +54,11 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> { @Override protected void process(List<String> chunks) { + // Don't update the gui progress bar and text if cancelled as this thread my run + // longer + // and override our cancelled notifications. + if (isCancelled()) + return; String progressText = chunks.get(chunks.size() - 1); page.updateConversionProgressbarText(progressText); progressText = progressText.replaceAll("[^\\d]", ""); @@ -71,14 +76,15 @@ public class ConversionTaskWorker extends SwingWorker<Boolean, String> { try { get(); page.setPageComplete(true); + page.danglingConversion = false; page.updateConversionProgressbar(100); } catch (InterruptedException e) { - // TODO Auto-generated catch block process.destroy(); + page.updateConversionProgressbarText(conversionCancelledText); } catch (CancellationException e) { process.destroy(); + page.updateConversionProgressbarText(conversionCancelledText); } catch (ExecutionException e) { - // TODO Auto-generated catch block e.printStackTrace(); } super.done(); |