summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/util
diff options
context:
space:
mode:
authorStephan Schwär2020-10-16 09:05:24 +0200
committerStephan Schwär2020-10-16 09:05:24 +0200
commit0b9fb1a088faba8182cb841f64b9cc620b0b0f3d (patch)
treed7d44a0d7360b30e8f18f22e93e586344090d320 /dozentenmodul/src/main/java/org/openslx/dozmod/util
parent[client] Unset description file on conversion cancel (diff)
downloadtutor-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.java16
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();