summaryrefslogtreecommitdiffstats
path: root/dozentenmodul
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java25
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());
}