summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java37
1 files changed, 34 insertions, 3 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java
index 028b9878..8b79d064 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java
@@ -6,11 +6,12 @@ import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor;
import org.openslx.dozmod.gui.configurator.ContainerBindMountConfigurator;
+import org.openslx.dozmod.gui.control.ComboBox;
import org.openslx.dozmod.gui.control.QLabel;
import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.gui.helper.I18n;
-import org.openslx.dozmod.model.ContainerBuildContextMethod;
import org.openslx.dozmod.model.ContainerDefinition;
+import org.openslx.dozmod.model.ContainerMeta;
import org.openslx.thrifthelper.ThriftManager;
import org.openslx.util.ThriftUtil;
@@ -32,7 +33,9 @@ public class ContainerPanel extends JPanel {
private final Logger LOGGER = Logger.getLogger(ContainerBindMountConfigurator.class);
private final QLabel lblContainerRunOpt;
- private final QLabel lblContainerImageName;
+
+ private final QLabel lblContainerImageType;
+ private final ComboBox<ContainerMeta.ContainerImageType> cboContainerImageType;
private final JTextArea txtContainerRecipe;
private final JTextField txtContainerRun;
@@ -63,7 +66,7 @@ public class ContainerPanel extends JPanel {
GridManager grdContainer = new GridManager(this, 2, false, new Insets(8, 2, 8, 2));
- lblContainerImageName = new QLabel(
+ QLabel lblContainerImageName = new QLabel(
I18n.PANEL.getString("ContainerPanel.Label.ImageName.text"));
grdContainer.add(lblContainerImageName);
txtContainerImageName = new JTextField();
@@ -75,6 +78,23 @@ public class ContainerPanel extends JPanel {
scrollableTextArea.setMinimumSize(Gui.getScaledDimension(0, 200));
scrollableTextArea.setPreferredSize(Gui.getScaledDimension(0, 200));
grdContainer.add(scrollableTextArea, 2).fill(true, true).expand(true, true);
+
+
+ lblContainerImageType = new QLabel("Container Image Type");
+ cboContainerImageType = new ComboBox<>(new ComboBox.ComboBoxRenderer<ContainerMeta.ContainerImageType>() {
+ @Override public String renderItem(ContainerMeta.ContainerImageType item) {
+ if (item == null)
+ return "null";
+ return item.name();
+ }
+ }, ContainerMeta.ContainerImageType.class);
+ for (ContainerMeta.ContainerImageType type:ContainerMeta.ContainerImageType.values()) {
+ cboContainerImageType.addItem(type);
+ }
+ cboContainerImageType.setSelectedItem(ContainerMeta.ContainerImageType.LECTURE);
+ grdContainer.add(lblContainerImageType);
+ grdContainer.add(cboContainerImageType).fill(true,false).expand(true,false);
+
grdContainer.add(pnlContainerMeta, 2).fill(true, true).expand(true, true);
grdContainer.finish(true);
@@ -120,6 +140,8 @@ public class ContainerPanel extends JPanel {
break;
}
+ cboContainerImageType.setSelectedItem(containerDefinition.getContainerMeta().getImageType());
+
if (context.equals(IMAGE_CONTEXT)) {
initImageDetails();
} else if (context.equals(CONTAINER_CONTEXT)) {
@@ -133,6 +155,8 @@ public class ContainerPanel extends JPanel {
// currently do not allow user to change the Image Repository or Dockerfile in the suite.
txtContainerRecipe.setEnabled(false);
+
+ // do not show container specific input options
lblContainerRunOpt.setVisible(false);
txtContainerRun.setVisible(false);
bindMountConfigurator.setVisible(false);
@@ -141,6 +165,9 @@ public class ContainerPanel extends JPanel {
private void initContainerDetails() {
txtContainerRecipe.setEnabled(false);
+ lblContainerImageType.setVisible(false);
+ cboContainerImageType.setEditable(false);
+ cboContainerImageType.setVisible(false);
txtContainerRun.setText(containerDefinition.getContainerMeta().getRunOptions());
bindMountConfigurator.setData(containerDefinition.getContainerMeta().getBindMountConfig());
}
@@ -152,6 +179,7 @@ public class ContainerPanel extends JPanel {
I18n.PANEL.getString("ContainerPanel.Constraint.NoEmptyDockerfile.text")));
changeMonitor.add(txtContainerRun);
changeMonitor.add(bindMountConfigurator);
+ changeMonitor.addFixedCombo(cboContainerImageType,null);
isFirstTime = false;
}
}
@@ -167,11 +195,14 @@ public class ContainerPanel extends JPanel {
ContainerDefinition newConDev = new ContainerDefinition(containerDefinition);
+ newConDev.getContainerMeta().setImageType(
+ (ContainerMeta.ContainerImageType) cboContainerImageType.getSelectedItem());
newConDev.getContainerMeta().setRunOptions(txtContainerRun.getText());
newConDev.getContainerMeta().setBindMountConfig(bindMountConfigurator.getData());
// TODO do I really need this check? Maybe just get every setting and upload it.
if (!newConDev.equals(containerDefinition)) {
+ LOGGER.info("Update Container Definition");
try {
ThriftManager.getSatClient()
.setImageVersionVirtConfig(satelliteToken, image.getLatestVersionId(),