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 | 60 |
1 files changed, 35 insertions, 25 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 8b79d064..a3b5ee3b 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 @@ -25,21 +25,24 @@ public class ContainerPanel extends JPanel { * Version for serialization. */ private static final long serialVersionUID = -3335320345960410582L; - - // TODO Set the height of txtContainerRecipe dependent of the Context. Full height for IMAGE_CONTEXT. + + // TODO Set the height of txtContainerRecipe to a proper Value public static final String IMAGE_CONTEXT = "IMAGE"; public static final String CONTAINER_CONTEXT = "CONTAINER"; private final Logger LOGGER = Logger.getLogger(ContainerBindMountConfigurator.class); - private final QLabel lblContainerRunOpt; - + // TODO ContainerImageType should be set in MetaData private final QLabel lblContainerImageType; private final ComboBox<ContainerMeta.ContainerImageType> cboContainerImageType; + private final JPanel pnlContainerMeta; + private final JTextArea txtContainerRecipe; private final JTextField txtContainerRun; private final JTextField txtContainerImageName; + + private final JTextField txtContainerRunCommand; private final ContainerBindMountConfigurator bindMountConfigurator; private ContainerDefinition containerDefinition = null; @@ -48,18 +51,24 @@ public class ContainerPanel extends JPanel { public ContainerPanel() { - JPanel pnlContainerMeta = new JPanel(); + pnlContainerMeta = new JPanel(); GridManager grdContainerMeta = new GridManager(pnlContainerMeta, 3); - lblContainerRunOpt = new QLabel( + QLabel lblContainerRunOpt = new QLabel( I18n.PANEL.getString("ContainerPanel.ContainerStartOptions.label")); lblContainerRunOpt.setToolTipText( I18n.PANEL.getString("ContainerPanel.ContainerStartOptions.tooltip")); - grdContainerMeta.add(lblContainerRunOpt); txtContainerRun = new JTextField(); + grdContainerMeta.add(lblContainerRunOpt); grdContainerMeta.add(txtContainerRun, 2).fill(true, false).expand(true, false); grdContainerMeta.nextRow(); + QLabel lblContainerRunCommand = new QLabel("Container Run Command"); + txtContainerRunCommand = new JTextField(); + grdContainerMeta.add(lblContainerRunCommand); + grdContainerMeta.add(txtContainerRunCommand, 2).fill(true, false).expand(true, false); + grdContainerMeta.nextRow(); + bindMountConfigurator = new ContainerBindMountConfigurator(); grdContainerMeta.add(bindMountConfigurator, 3).fill(true, true).expand(true, true); grdContainerMeta.finish(true); @@ -79,21 +88,21 @@ public class ContainerPanel extends JPanel { 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 = 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(cboContainerImageType).fill(true, false).expand(true, false); grdContainer.add(pnlContainerMeta, 2).fill(true, true).expand(true, true); grdContainer.finish(true); @@ -124,8 +133,7 @@ public class ContainerPanel extends JPanel { txtContainerImageName.setText(image.imageName); txtContainerImageName.setEnabled(false); // TODO simplify this mess. ContainerBuildContextMethod is to complex or useless - switch (containerDefinition.getBuildContextMethod()) - { + switch (containerDefinition.getBuildContextMethod()) { case FILE: txtContainerRecipe.setText(containerDefinition.getContainerRecipe()); break; @@ -157,9 +165,8 @@ public class ContainerPanel extends JPanel { txtContainerRecipe.setEnabled(false); // do not show container specific input options - lblContainerRunOpt.setVisible(false); - txtContainerRun.setVisible(false); - bindMountConfigurator.setVisible(false); + pnlContainerMeta.setVisible(false); + pnlContainerMeta.setEnabled(false); } private void initContainerDetails() { @@ -169,6 +176,7 @@ public class ContainerPanel extends JPanel { cboContainerImageType.setEditable(false); cboContainerImageType.setVisible(false); txtContainerRun.setText(containerDefinition.getContainerMeta().getRunOptions()); + txtContainerRunCommand.setText(containerDefinition.getContainerMeta().getRunCommand()); bindMountConfigurator.setData(containerDefinition.getContainerMeta().getBindMountConfig()); } @@ -178,8 +186,9 @@ public class ContainerPanel extends JPanel { .addConstraint(new DialogChangeMonitor.TextNotEmptyConstraint( I18n.PANEL.getString("ContainerPanel.Constraint.NoEmptyDockerfile.text"))); changeMonitor.add(txtContainerRun); + changeMonitor.add(txtContainerRunCommand); changeMonitor.add(bindMountConfigurator); - changeMonitor.addFixedCombo(cboContainerImageType,null); + changeMonitor.addFixedCombo(cboContainerImageType, null); isFirstTime = false; } } @@ -195,8 +204,9 @@ public class ContainerPanel extends JPanel { ContainerDefinition newConDev = new ContainerDefinition(containerDefinition); - newConDev.getContainerMeta().setImageType( - (ContainerMeta.ContainerImageType) cboContainerImageType.getSelectedItem()); + newConDev.getContainerMeta() + .setImageType((ContainerMeta.ContainerImageType) cboContainerImageType.getSelectedItem()); + newConDev.getContainerMeta().setRunCommand(txtContainerRunCommand.getText()); newConDev.getContainerMeta().setRunOptions(txtContainerRun.getText()); newConDev.getContainerMeta().setBindMountConfig(bindMountConfigurator.getData()); |