diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
| -rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java | 59 |
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")) { |
