From 5bfd0704f7fb73a366661ca8286323cac285121e Mon Sep 17 00:00:00 2001 From: Stephan Schwär Date: Wed, 28 Oct 2020 09:54:56 +0900 Subject: [client] Improve flow to detect started, cancelled and finished konversions. Feature: #3771 --- .../gui/wizard/page/ImageOvfConversionPage.java | 24 ++++++++++++---------- .../openslx/dozmod/util/ConversionTaskWorker.java | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) (limited to 'dozentenmodul/src/main/java') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java index 0281ad19..83966486 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java @@ -36,7 +36,8 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout { private File vmxFile; private ConversionTaskWorker worker; private String startConversionButtonString = "Konvertierung starten"; - public boolean danglingConversion = false; + public boolean conversionStarted = false; + public boolean conversionSuccessful = false; private String ovfToolPath = "ovftool"; public ImageOvfConversionPage(Wizard wizard, UploadWizardState uploadWizardState) { @@ -120,7 +121,7 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout { btnStartConversion.setText(startConversionButtonString); return; } - danglingConversion = true; + conversionStarted = true; Files.createDirectories(directoryFile.toPath()); vmxFile = new File(directoryFile.getPath() + "/" + FilenameUtils.removeExtension((file.getName())) + ".vmx"); worker = new ConversionTaskWorker(file, vmxFile, page, ovfToolPath); @@ -132,17 +133,16 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout { if (directoryFile.exists()) { int dialogButton = JOptionPane.YES_NO_OPTION; int dialogResult; - if (danglingConversion) { - dialogResult = JOptionPane - .showConfirmDialog(this, - "Für die abgebrochene Konvertierung wurde ein Verzeichnis erstellt.\n" - + "Soll dieses und dessen Inhalt wieder entfernt werden?", - "Verzeichnis Überschreiben?", dialogButton); - } else { + if (!conversionStarted) { dialogResult = JOptionPane.showConfirmDialog(this, "Das Verzeichnis, in welcher das konvertierte Image gespeichert werden soll existiert bereits. \n" + "Soll dieses ersetzt und die darin enthaltenen Dateien gelöscht werden?", "Verzeichnis Überschreiben?", dialogButton); + } else { + dialogResult = JOptionPane.showConfirmDialog(this, + "Für die abgebrochene Konvertierung wurde ein Verzeichnis erstellt.\n" + + "Soll dieses und dessen Inhalt wieder entfernt werden?", + "Verzeichnis Überschreiben?", dialogButton); } if (dialogResult == 0) { FileUtils.deleteDirectory(directoryFile); @@ -172,13 +172,15 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout { protected void onPageEnter() { updateConversionProgressbar(0); updateConversionProgressbarText(""); + conversionStarted = false; + conversionSuccessful = false; btnStartConversion.setText(startConversionButtonString); } @Override protected void onPageLeave() { // Make sure the worker is stopped when leaving the page. - if (wizard.isCancelled() || danglingConversion) { + if (wizard.isCancelled() || (conversionStarted && !conversionSuccessful)) { page.cancelConversionWorker(); if (state.convertedDescriptionFile != null) { try { @@ -188,7 +190,7 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout { } } state.convertedDescriptionFile = null; - danglingConversion = false; + conversionStarted = false; } super.onPageLeave(); } 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 94d0da38..c643e5d0 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ConversionTaskWorker.java @@ -81,7 +81,7 @@ public class ConversionTaskWorker extends SwingWorker { try { get(); page.setPageComplete(true); - page.danglingConversion = false; + page.conversionSuccessful = true; page.updateConversionProgressbar(100); } catch (InterruptedException e) { LOGGER.debug("Conversion execution interrupted", e); -- cgit v1.2.3-55-g7522