diff options
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.java | 37 |
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(), |