diff options
| author | Stephan Schwär | 2020-10-08 07:32:48 +0200 |
|---|---|---|
| committer | Stephan Schwär | 2020-10-08 07:32:48 +0200 |
| commit | 985f1f88694e9f35012ee9a1e38bd6323b789f15 (patch) | |
| tree | 3a739317c873cf6723dfa21e58808c40cfedc588 | |
| parent | [client] Let the ImageUploadPage continue with an ovf file (diff) | |
| download | tutor-module-985f1f88694e9f35012ee9a1e38bd6323b789f15.tar.gz tutor-module-985f1f88694e9f35012ee9a1e38bd6323b789f15.tar.xz tutor-module-985f1f88694e9f35012ee9a1e38bd6323b789f15.zip | |
[client] Add layout and page class for ovf conversion
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 */ |
