summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java55
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java43
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java7
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java2
5 files changed, 108 insertions, 1 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java
index 349f555a..1c2b2201 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java
@@ -53,8 +53,8 @@ public class ImageCreationWizard extends Wizard implements UiFeedback, QuitNotif
*/
public void doVmCreation() {
cleanCurrent();
-
currentPages.add(new ImageUploadPage(this, state, null));
+ // currentPages.add(new ImageOvfConversionPage(this,state));
currentPages.add(new ImageMetaDataPage(this, state));
currentPages.add(new ImageCustomPermissionPage(this, state));
addPages();
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java
new file mode 100644
index 00000000..0e6224f8
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageOvfConversionPageLayout.java
@@ -0,0 +1,55 @@
+package org.openslx.dozmod.gui.wizard.layout;
+
+import java.awt.event.KeyEvent;
+
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.JButton;
+import javax.swing.JTextField;
+
+import org.openslx.dozmod.gui.control.QLabel;
+import org.openslx.dozmod.gui.helper.GridManager;
+import org.openslx.dozmod.gui.wizard.Wizard;
+import org.openslx.dozmod.gui.wizard.WizardPage;
+
+@SuppressWarnings("serial")
+public abstract class ImageOvfConversionPageLayout extends WizardPage {
+
+ protected final JButton btnStartConversion;
+ protected final JTextArea txtInfoText;
+
+ /**
+ * Page for uploading an imagefile
+ */
+ public ImageOvfConversionPageLayout(Wizard wizard) {
+ super(wizard, "ovf konvertieren");
+ setDescription("Bitte wählen Sie eine Virtuelle Maschine zum Hochladen aus.");
+ GridManager grid = new GridManager(this, 3, false);
+
+ // -- Browse for VM --
+ QLabel imageFileCaption = new QLabel("Virtuelle Maschine");
+
+ btnStartConversion = new JButton("Durchsuchen");
+ btnStartConversion.setMnemonic(KeyEvent.VK_B);
+ grid.add(imageFileCaption);
+ grid.add(btnStartConversion);
+ grid.nextRow();
+
+ grid.add(Box.createVerticalGlue(), 3).expand(true, true);
+
+ txtInfoText = new JTextArea();
+ txtInfoText.setBorder(BorderFactory.createTitledBorder("Hinweis"));
+ txtInfoText.setLineWrap(true);
+ txtInfoText.setWrapStyleWord(true);
+ txtInfoText.setEditable(false);
+ txtInfoText.setFocusable(false);
+ txtInfoText.setOpaque(false);
+ txtInfoText.setText("Je nach Geschwindigkeit Ihres Computers "
+ + "und der Größe der Virtuellen Maschine kann die Konvertierung"
+ + "einige Zeit in Anspruch nehmen.");
+ grid.add(txtInfoText, 3).fill(true, false).expand(true, false);
+ grid.nextRow();
+
+ grid.finish(false);
+ }
+}
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
new file mode 100644
index 00000000..dd673324
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageOvfConversionPage.java
@@ -0,0 +1,43 @@
+package org.openslx.dozmod.gui.wizard.page;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.openslx.dozmod.gui.wizard.Wizard;
+import org.openslx.dozmod.gui.wizard.layout.ImageOvfConversionPageLayout;
+import org.openslx.dozmod.state.UploadWizardState;
+
+@SuppressWarnings("serial")
+public class ImageOvfConversionPage extends ImageOvfConversionPageLayout {
+ private final static Logger LOGGER = Logger.getLogger(ImageOvfConversionPage.class);
+
+ private UploadWizardState state;
+ private String lastDetectedName = null;
+
+ public ImageOvfConversionPage(Wizard wizard, UploadWizardState uploadWizardState) {
+ super(wizard);
+ setPageComplete(false);
+ this.canComeBack = false;
+ this.state = uploadWizardState;
+
+ txtInfoText.setVisible(true);
+
+ // Start the conversion
+ btnStartConversion.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ convertOvfToVmx();
+ }
+ });
+
+ }
+
+ private void convertOvfToVmx() {
+ LOGGER.debug("Conversion button clicked");
+ }
+}
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 e768d5e5..43db9b95 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
@@ -141,11 +141,13 @@ public class ImageUploadPage extends ImageUploadPageLayout {
return;
}
+ // If the description file is an ovf file, we can end here to be able to skip to conversion.
if (state.meta instanceof OvfMetaData) {
JOptionPane.showMessageDialog(wizard,
"Sie haben ein Image im ovf Format ausgewählt. Dieses muss vor dem Upload im nächsten Schritt konvertiert werden.");
txtImageFile.setText(file.getAbsolutePath());
txtImageName.setText(state.meta.getDisplayName());
+ state.descriptionFile = file;
setErrorMessage(null);
setDescription("Im nächsten Schritt wird die Konvertierung gestartet.");
setPageComplete(true);
@@ -287,6 +289,11 @@ 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")) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
index 46810096..f70cf156 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
@@ -35,6 +35,8 @@ public class UploadWizardState {
public boolean isRestricted = true;
// flags an image as a template
public boolean isTemplate = false;
+ // flag if we the description file is in the ovf format
+ public boolean isOvf = false;
/**
* list of strings for tags
*/