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 | 25 |
1 files changed, 21 insertions, 4 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 ac92ec4a..ce4dc203 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 @@ -69,7 +69,7 @@ public class ImageUploadPage extends ImageUploadPageLayout { dialog.setFilterPath(Config.getUploadPath()); String ret = dialog.open(); if (ret != null) { - vmxSelected(new File(ret)); + vmxSelected(new File(ret).getAbsoluteFile()); } } @@ -82,7 +82,7 @@ public class ImageUploadPage extends ImageUploadPageLayout { private void vmxSelected(File file) { // TODO: setErrorMessage(newMessage); - Config.setUploadPath(file.getParentFile().getAbsolutePath()); + Config.setUploadPath(file.getParent()); VmwareMetaData meta = null; try { meta = new VmwareMetaData(MetaDataCache.getOperatingSystems(), file); @@ -93,7 +93,7 @@ public class ImageUploadPage extends ImageUploadPageLayout { return; } if (meta == null || meta.getDisplayName() == null) { - setErrorMessage("Keine gülte vmx-Datei ausgewählt!"); + setErrorMessage("Keine gültige vmx-Datei ausgewählt!"); setPageComplete(false); return; } @@ -109,8 +109,25 @@ public class ImageUploadPage extends ImageUploadPageLayout { return; // Allow to continue!? } + // vmx ok, set it as our description file uploadWizardState.vmDescriptionFile = file; - uploadWizardState.vmDiskFile = new File(hdds.get(0).diskImage); + // now check the disk files + File vmDiskFileInfo = new File(hdds.get(0).diskImage); + if (!vmDiskFileInfo.isAbsolute()) { + // relative path: making a new File would take this application's + // working direction and the basename of the disk file + // and result in a potentially existing vmdk file + // which is not the one we want. + File vmxBaseDirectory = file.getParentFile(); + vmDiskFileInfo = new File(vmxBaseDirectory, hdds.get(0).diskImage); + } + if (vmDiskFileInfo.canRead()) { + uploadWizardState.vmDiskFile = vmDiskFileInfo; + } else { + setErrorMessage("'" + vmDiskFileInfo.getPath() + "' kann nicht gelesen werden!"); + setPageComplete(false); + return; + } if (imageNameTextField.getText().isEmpty()) { imageNameTextField.setText(meta.getDisplayName()); } |