summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page
diff options
context:
space:
mode:
authorStephan Schwär2020-10-19 09:15:14 +0200
committerStephan Schwär2020-10-19 09:15:14 +0200
commit447254674e36dc22fb144beb168228000d2ff121 (patch)
treef836ece5246a36937ce48f596167c6df00cb9eb0 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page
parent[client] Better handling of ovfTool not found exception (diff)
downloadtutor-module-447254674e36dc22fb144beb168228000d2ff121.tar.gz
tutor-module-447254674e36dc22fb144beb168228000d2ff121.tar.xz
tutor-module-447254674e36dc22fb144beb168228000d2ff121.zip
[client] Browse for ovftool location if not found
On linux java processBuilder is able to find the ovftool without specifying the path. It probably does this via the PATH environment variable. This is not the case on windows so for now the ovftool executable has to be selected by the user on windows and probably also on macOS. Feature: #3771
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java48
1 files changed, 44 insertions, 4 deletions
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 9417e62d..dbe2a6bc 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
@@ -7,22 +7,24 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
+import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
-
+import org.openslx.dozmod.Config;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.helper.MessageType;
+import org.openslx.dozmod.gui.helper.QFileChooser;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.layout.ImageOvfConversionPageLayout;
import org.openslx.dozmod.state.UploadWizardState;
import org.openslx.dozmod.util.ConversionTaskWorker;
/**
- * Page for converting an ovf image into an vmx image. Creates a directory
- * for the new vmx image, starts the conversion SwingWorker and shows the progress.
+ * Page for converting an ovf image into an vmx image. Creates a directory for
+ * the new vmx image, starts the conversion SwingWorker and shows the progress.
* Replaces the image description file in state after conversion.
*/
@SuppressWarnings("serial")
@@ -35,6 +37,7 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
private ConversionTaskWorker worker;
private String startConversionButtonString = "Konvertierung starten";
public boolean danglingConversion = false;
+ private String ovfToolPath = "ovftooll";
public ImageOvfConversionPage(Wizard wizard, UploadWizardState uploadWizardState) {
super(wizard);
@@ -64,6 +67,43 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
}
}
});
+ // Browse for *.vmx
+ btnBrowseForOvftool.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ QFileChooser fc = new QFileChooser(Config.getUploadPath(), false);
+ int action = fc.showOpenDialog(getDialog());
+ File file = fc.getSelectedFile();
+
+ if (action != JFileChooser.APPROVE_OPTION || file == null) {
+ return;
+ }
+ page.ovfToolPath = file.getAbsolutePath();
+ btnStartConversion.setEnabled(true);
+ ovfToolFile.setText(page.ovfToolPath);
+ }
+
+ });
+ }
+
+ private void browseForOvfTool() {
+ // fc.setAcceptAllFileFilterUsed(false);
+ // fc.addChoosableFileFilter(vmxFilter);
+ // fc.addChoosableFileFilter(ovfFilter);
+ // if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
+ // fc.addChoosableFileFilter(vboxFilter);
+ // }
+ // fc.addChoosableFileFilter(allSupportedFilter);
+ // fc.setFileFilter(allSupportedFilter);
+ // // differentiate between existing and new VMs
+ // if (existingImage != null) {
+ // if (existingImage.virtId.equals(TConst.VIRT_VMWARE)) {
+ // fc.setFileFilter(vmxFilter);
+ // } else if (existingImage.virtId.equals(TConst.VIRT_VIRTUALBOX)) {
+ // fc.setFileFilter(vboxFilter);
+ // }
+ // }
+
}
public void cancelConversionWorker() {
@@ -87,7 +127,7 @@ public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
danglingConversion = true;
Files.createDirectories(directoryFile.toPath());
vmxFile = new File(directoryFile.getPath() + "/" + FilenameUtils.removeExtension((file.getName())) + ".vmx");
- worker = new ConversionTaskWorker(file, vmxFile, page, null);
+ worker = new ConversionTaskWorker(file, vmxFile, page, ovfToolPath);
worker.execute();
state.convertedDescriptionFile = vmxFile;
}