summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window
diff options
context:
space:
mode:
authorVictor Mocanu2018-04-16 16:12:42 +0200
committerSimon Rettberg2018-04-16 16:12:42 +0200
commitebd9d933431fdf2cd8cc2da2720a0be8362c0849 (patch)
treefac61f345ba6117e580d22eed889ace224068636 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window
parent[server] Calculate DNBD3-CRC32 list of incoming transfers and dump to disk (diff)
downloadtutor-module-ebd9d933431fdf2cd8cc2da2720a0be8362c0849.tar.gz
tutor-module-ebd9d933431fdf2cd8cc2da2720a0be8362c0849.tar.xz
tutor-module-ebd9d933431fdf2cd8cc2da2720a0be8362c0849.zip
[*] Add virtualbox support
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java17
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java20
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java66
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java64
4 files changed, 113 insertions, 54 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
index 517d324d..cfcad22b 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
@@ -67,6 +67,7 @@ import org.openslx.sat.thrift.version.Feature;
import org.openslx.thrifthelper.ThriftManager;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
+import org.openslx.util.ThriftUtil;
import org.openslx.util.Util;
/**
@@ -383,6 +384,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
} catch (TException e) {
LOGGER.error("Failed to retrieve virtualizer config for image version "
+ "'" + image.latestVersionId + ", see trace: ", e);
+ return;
}
Gui.asyncExec(new Runnable() {
@Override
@@ -391,7 +393,16 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
Gui.showMessageBox("Konnte VM-Konfiguration nicht abrufen.", MessageType.ERROR, LOGGER, null);
return;
}
- VirtDropDownConfigEditorWindow.open(me, actionHandler, selected.versionId, machineDescription);
+
+ //TODO is this a hack?
+ String tmp = ThriftUtil.byteBufferToString(machineDescription);
+ if (tmp.startsWith("qemu")) {
+ VirtConfigEditorWindow.open(me, actionHandler, selected.versionId,
+ machineDescription, tmp);
+ } else {
+ VirtDropDownConfigEditorWindow.open(me, actionHandler, selected.versionId,
+ machineDescription);
+ }
}
});
}
@@ -481,7 +492,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
return;
}
}
-
+
}
// let the user confirm or abort
if (!Gui.showMessageBox("Wollen Sie diese VM wirklich landesweit veröffentlichen?",
@@ -646,7 +657,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
refresh(true);
}
}
-
+
/********************************************************************************
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
index 301b068f..349bf9b1 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
@@ -3,6 +3,7 @@ package org.openslx.dozmod.gui.window;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
@@ -21,8 +22,8 @@ import org.openslx.dozmod.thrift.ImageDetailsActions;
import org.openslx.dozmod.thrift.ImageDetailsActions.VirtConfCallback;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.util.ThriftUtil;
+import org.openslx.util.vm.VmMetaData;
import org.openslx.util.vm.VmwareConfig;
-import org.openslx.util.vm.VmwareMetaData;
@SuppressWarnings("serial")
public class VirtConfigEditorWindow extends VirtConfigEditorWindowLayout implements UiFeedback {
@@ -84,10 +85,19 @@ public class VirtConfigEditorWindow extends VirtConfigEditorWindowLayout impleme
Charset cs = VmwareConfig.getCharset(uiBytes, uiBytes.length);
// cs is now either the detected encoding, or latin1 as a default
uiBytes = userInput.getBytes(cs);
- // now we should have the correct bytes....
- VmwareMetaData meta = new VmwareMetaData(MetaDataCache.getOperatingSystems(), uiBytes,
- uiBytes.length);
- byte[] uiBytesFiltered = meta.getDefinitionArray();
+ // now we should have the correct bytes...
+ VmMetaData<?,?,?,?> metaCandidate = null;
+ try {
+ metaCandidate = VmMetaData.getInstance(MetaDataCache.getOperatingSystems(), uiBytes,
+ uiBytes.length);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ if ( metaCandidate == null ) {
+ dispose();
+ }
+
+ byte[] uiBytesFiltered = metaCandidate.getDefinitionArray();
final String userInputFiltered = new String(uiBytesFiltered, cs);
// So here we have:
// - uiBytes is the unfiltered user input
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java
index b68a575d..c151f505 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java
@@ -3,6 +3,7 @@ package org.openslx.dozmod.gui.window;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.IOException;
import java.nio.ByteBuffer;
import org.openslx.dozmod.gui.Gui;
@@ -13,15 +14,15 @@ import org.openslx.dozmod.thrift.ImageDetailsActions;
import org.openslx.dozmod.thrift.ImageDetailsActions.VirtConfCallback;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.util.ThriftUtil;
-import org.openslx.util.vm.VmwareMetaData;
-import org.openslx.util.vm.VmwareMetaData.DDAcceleration;
-import org.openslx.util.vm.VmwareMetaData.EthernetDevType;
-import org.openslx.util.vm.VmwareMetaData.HWVersion;
-import org.openslx.util.vm.VmwareMetaData.SoundCardType;
+import org.openslx.util.vm.VmMetaData;
+import org.openslx.util.vm.VmMetaData.DDAcceleration;
+import org.openslx.util.vm.VmMetaData.EthernetDevType;
+import org.openslx.util.vm.VmMetaData.HWVersion;
+import org.openslx.util.vm.VmMetaData.SoundCardType;
@SuppressWarnings("serial")
-public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWindowLayout
- implements UiFeedback {
+public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWindowLayout implements
+ UiFeedback {
public interface VirtConfigChanged {
public void virtConfigChanged(String newVmx);
@@ -30,7 +31,7 @@ public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWind
private final String imageVersionId;
private final String originalMachineDescription;
private final VirtDropDownConfigEditorWindow me = this;
- private final VmwareMetaData meta;
+ private final VmMetaData<?, ?, ?, ?> meta;
private final ImageDetailsActions actionHandler;
protected VirtDropDownConfigEditorWindow(Window modalParent, final ImageDetailsActions actionHandler,
@@ -41,8 +42,23 @@ public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWind
this.imageVersionId = imageVersionId;
// and now for the meta data
+ VmMetaData<?, ?, ?, ?> metaCandidate = null;
byte[] machineData = ThriftUtil.unwrapByteBuffer(machineDescription);
- meta = new VmwareMetaData(MetaDataCache.getOperatingSystems(), machineData, machineData.length);
+ try {
+ metaCandidate = VmMetaData.getInstance(MetaDataCache.getOperatingSystems(), machineData,
+ machineData.length);
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ if (metaCandidate == null) {
+ dispose();
+ }
+ meta = metaCandidate;
+
+ initializeSoundBox(meta.getSupportedSoundCards());
+ initializeDDABox(meta.getSupportedDDAccs());
+ initializeHWVersBox(meta.getSupportedHWVersions());
+ initializeEDTBox(meta.getSupportedEthernetDevices());
//set the initial state of the buttons
setTheBoxes(meta);
@@ -118,6 +134,11 @@ public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWind
this.originalMachineDescription = ThriftUtil.byteBufferToString(machineDescription);
btnSave.setEnabled(false);
+ //TODO sort this hack out...and make it work
+ /*
+ if ( meta instanceof QemuMetaData) {
+ this.btnMore.doClick();
+ } */
}
protected void checkForChange() {
@@ -133,15 +154,22 @@ public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWind
/* setting the boxes to their initial value...value is read from the given metaData
* @param: given VmwareMetaData
*/
- private void setTheBoxes(VmwareMetaData m) {
- SoundCardType SCT = m.getSoundCard();
- cboSound.setSelectedItem(SCT);
- DDAcceleration DDA = m.getDDAcceleration();
- cbo3DAcceleration.setSelectedItem(DDA);
- HWVersion HWV = m.getHWVersion();
- cboHWVersion.setSelectedItem(HWV);
- EthernetDevType E0VD = m.getEthernetDevType(0);
- cboE0VirtDev.setSelectedItem(E0VD);
+ private void setTheBoxes(VmMetaData<?, ?, ?, ?> m) {
+ try {
+ SoundCardType SCT = m.getSoundCard();
+ cboSound.setSelectedItem(SCT);
+ DDAcceleration DDA = m.getDDAcceleration();
+ cbo3DAcceleration.setSelectedItem(DDA);
+ HWVersion HWV = m.getHWVersion();
+ cboHWVersion.setSelectedItem(HWV);
+ EthernetDevType E0VD = m.getEthernetDevType(0);
+ cboE0VirtDev.setSelectedItem(E0VD);
+ } catch (IllegalArgumentException e) {
+ // TODO improve user message
+ Gui.showMessageBox("Sie haben beim letzten Konfigurieren \n"
+ + "einen falschen Eintrag eingespeichert. \n" + "Die VM wird nicht starten!",
+ MessageType.WARNING, null, e);
+ }
}
private void saveClicked() {
@@ -184,4 +212,4 @@ public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWind
public void escapePressed() {
safeClose();
}
-} \ No newline at end of file
+}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java
index db79f7d0..28dd5e4e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java
@@ -4,6 +4,7 @@ import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.Window;
+import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.Box;
@@ -21,10 +22,10 @@ import org.openslx.dozmod.gui.control.ComboBox;
import org.openslx.dozmod.gui.control.ComboBox.ComboBoxRenderer;
import org.openslx.dozmod.gui.control.WordWrapLabel;
import org.openslx.dozmod.gui.helper.GridManager;
-import org.openslx.util.vm.VmwareMetaData.DDAcceleration;
-import org.openslx.util.vm.VmwareMetaData.EthernetDevType;
-import org.openslx.util.vm.VmwareMetaData.HWVersion;
-import org.openslx.util.vm.VmwareMetaData.SoundCardType;
+import org.openslx.util.vm.VmMetaData.DDAcceleration;
+import org.openslx.util.vm.VmMetaData.EthernetDevType;
+import org.openslx.util.vm.VmMetaData.HWVersion;
+import org.openslx.util.vm.VmMetaData.SoundCardType;
@SuppressWarnings("serial")
public class VirtDropDownConfigEditorWindowLayout extends JDialog {
@@ -64,7 +65,6 @@ public class VirtDropDownConfigEditorWindowLayout extends JDialog {
* ComboBoxes - one for each device
*/
- // SoundBox
cboSound = new ComboBox<>(new ComboBoxRenderer<SoundCardType>() {
@Override
public String renderItem(SoundCardType item) {
@@ -72,10 +72,6 @@ public class VirtDropDownConfigEditorWindowLayout extends JDialog {
}
});
- for (SoundCardType i : SoundCardType.values()) {
- cboSound.addItem(i);
- }
-
// 3D accelerationBox
cbo3DAcceleration = new ComboBox<>(new ComboBoxRenderer<DDAcceleration>() {
@Override
@@ -84,10 +80,6 @@ public class VirtDropDownConfigEditorWindowLayout extends JDialog {
}
});
- for (DDAcceleration i : DDAcceleration.values()) {
- cbo3DAcceleration.addItem(i);
- }
-
// HardwareVersioBox
cboHWVersion = new ComboBox<>(new ComboBoxRenderer<HWVersion>() {
@Override
@@ -96,10 +88,6 @@ public class VirtDropDownConfigEditorWindowLayout extends JDialog {
}
});
- for (HWVersion i : HWVersion.values()) {
- cboHWVersion.addItem(i);
- }
-
// HardwareVersioBox
cboE0VirtDev = new ComboBox<>(new ComboBoxRenderer<EthernetDevType>() {
@Override
@@ -108,10 +96,6 @@ public class VirtDropDownConfigEditorWindowLayout extends JDialog {
}
});
- for (EthernetDevType i : EthernetDevType.values()) {
- cboE0VirtDev.addItem(i);
- }
-
pnlEditor = new JEditorPane("text/plain", null);
pnlScrollPane = new JScrollPane(pnlEditor, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
@@ -130,10 +114,10 @@ public class VirtDropDownConfigEditorWindowLayout extends JDialog {
grid.add(new JLabel("Netzwerkkarte")).fill(true, false).expand(false, false);
grid.add(cboE0VirtDev).fill(true, false).expand(true, false);
grid.nextRow();
-
+
grid.add(Box.createVerticalGlue(), 2).expand(true, true);
grid.nextRow();
-
+
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
buttonPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
@@ -149,10 +133,36 @@ public class VirtDropDownConfigEditorWindowLayout extends JDialog {
grid.add(buttonPane, 2).fill(true, false).expand(true, false);
grid.finish(false);
- Dimension size = Gui.getScaledDimension(550, 300);
- setMinimumSize(size);
- setMaximumSize(size);
- setSize(size);
+ setPreferredSize(Gui.getScaledDimension(600, 400));
+ setMinimumSize(Gui.getScaledDimension(450, 350));
Gui.centerShellOverShell(modalParent, this);
}
+
+ // SoundBox
+ public void initializeSoundBox(List<SoundCardType> list) {
+ for (SoundCardType i : list) {
+ cboSound.addItem(i);
+ }
+ }
+
+ // 3 D acceleration
+ public void initializeDDABox(List<DDAcceleration> list) {
+ for (DDAcceleration i : list) {
+ cbo3DAcceleration.addItem(i);
+ }
+ }
+
+ // Hardware version
+ public void initializeHWVersBox(List<HWVersion> list) {
+ for (HWVersion i : list) {
+ cboHWVersion.addItem(i);
+ }
+ }
+
+ // Ethernet Device type
+ public void initializeEDTBox(List<EthernetDevType> list) {
+ for (EthernetDevType i : list) {
+ cboE0VirtDev.addItem(i);
+ }
+ }
}