summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java59
1 files changed, 32 insertions, 27 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
index d3b067ef..4326e98b 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
@@ -13,6 +13,7 @@ import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
+import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
import org.openslx.bwlp.thrift.iface.Virtualizer;
@@ -56,7 +57,8 @@ public class ImageUploadPage extends ImageUploadPageLayout {
private final FileNameExtensionFilter vboxFilter = new FileNameExtensionFilter("VirtualBox Virtual Machine",
"vbox");
- private final FileNameExtensionFilter ovfFilter = new FileNameExtensionFilter("ovf Virtual Machine Format", "ovf");
+ private final FileNameExtensionFilter ovfFilter = new FileNameExtensionFilter("OVF Virtual Machine Format", "ovf");
+ private final FileNameExtensionFilter ovaFilter = new FileNameExtensionFilter("OVA Virtual Machine Format", "ova");
public ImageUploadPage(Wizard wizard, UploadWizardState uploadWizardState, final ImageDetailsRead existingImage) {
super(wizard);
@@ -90,9 +92,9 @@ public class ImageUploadPage extends ImageUploadPageLayout {
// initialize allSupportedFilter depending on whether multiple hypervisors
// are supported or not
if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
- allSupportedFilter = new FileNameExtensionFilter("All Supported", "vmx", "ovf", "vbox");
+ allSupportedFilter = new FileNameExtensionFilter("All Supported", "vmx", "ovf", "vbox", "ova");
} else {
- allSupportedFilter = new FileNameExtensionFilter("All Supported", "vmx", "ovf");
+ allSupportedFilter = new FileNameExtensionFilter("All Supported", "vmx", "ovf", "ova");
}
btnBrowseForImage.requestFocus();
}
@@ -102,6 +104,7 @@ public class ImageUploadPage extends ImageUploadPageLayout {
fc.setAcceptAllFileFilterUsed(false);
fc.addChoosableFileFilter(vmxFilter);
fc.addChoosableFileFilter(ovfFilter);
+ fc.addChoosableFileFilter(ovaFilter);
if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) {
fc.addChoosableFileFilter(vboxFilter);
}
@@ -124,10 +127,34 @@ public class ImageUploadPage extends ImageUploadPageLayout {
vmSelected(file.getAbsoluteFile());
}
+ private void askForConversion(File file) {
+ int dialogButton = JOptionPane.YES_NO_OPTION;
+ int dialogResult = JOptionPane.showConfirmDialog(this,
+ "Sie haben ein Image im ovf Format ausgewählt. \n"
+ + "Wenn dieses mit dem Programm VMware exportiert wurde sollte es mithilfe\n"
+ + "des ovfTool von VMware in ein kompatibles vmx Image umgewandelt werden können. \n"
+ + "Möchten sie das Image konvertieren? (Das original Image bleibt unverändert.)",
+ "Image konvertieren?", dialogButton);
+ if (dialogResult == 0) {
+ // txtImageFile.setText(file.getAbsolutePath());
+ // txtImageName.setText(state.meta.getDisplayName());
+ state.descriptionFile = file;
+ setErrorMessage(null);
+ // setDescription("Im nächsten Schritt wird die Konvertierung gestartet.");
+ wizard.showOutOfOrderPage(state.conversionPage);
+ } else {
+ setPageComplete(false);
+ }
+ }
+
private void vmSelected(File file) {
Config.setUploadPath(file.getParent());
txtImageFile.setText("");
txtImageName.setText("");
+ if (FilenameUtils.getExtension(file.getAbsolutePath()).equalsIgnoreCase("ova")) {
+ askForConversion(file);
+ return;
+ }
try {
// gets the metadata object of the selected VM depending on its type
state.meta = VmMetaData.getInstance(MetaDataCache.getOperatingSystems(), file);
@@ -140,26 +167,8 @@ public class ImageUploadPage extends ImageUploadPageLayout {
// if the description file is an ovf file, we can end here and jump to the
// conversion page
if (state.meta instanceof OvfMetaData) {
- int dialogButton = JOptionPane.YES_NO_OPTION;
- int dialogResult = JOptionPane.showConfirmDialog(this,
- "Sie haben ein Image im ovf Format ausgewählt. \n"
- + "Wenn dieses mit dem Programm VMware exportiert wurde sollte es mithilfe\n"
- + "des ovfTool von VMware in ein kompatibles vmx Image umgewandelt werden können. \n"
- + "Möchten sie das Image konvertieren? (Das original Image bleibt unverändert.)",
- "Image konvertieren?", dialogButton);
- if (dialogResult == 0) {
- txtImageFile.setText(file.getAbsolutePath());
- txtImageName.setText(state.meta.getDisplayName());
- state.descriptionFile = file;
- setErrorMessage(null);
- setDescription("Im nächsten Schritt wird die Konvertierung gestartet.");
- wizard.showOutOfOrderPage(state.conversionPage);
- return;
- } else {
- setPageComplete(false);
- return;
- }
-
+ askForConversion(file);
+ return;
}
if (state.meta == null || state.meta.getDisplayName() == null) {
@@ -297,10 +306,6 @@ public class ImageUploadPage extends ImageUploadPageLayout {
@Override
protected boolean wantNextOrFinish() {
- // if (state.isOvf) {
- // return true;
- // }
-
// Check for vmware player lock files - warn user if found, might corrupt upload
if (askCancelLockFile(state.descriptionFile.getAbsolutePath() + ".lck",
state.diskFile.getAbsolutePath() + ".lck")) {