summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx
diff options
context:
space:
mode:
authorralph isenmann2020-10-05 16:58:19 +0200
committerralph isenmann2020-10-05 16:58:19 +0200
commitf420dcea6ee03dfd5ca70dd49ce1a2b4f9cbdd06 (patch)
tree87fdc86a174f59783f326f1804a82d60f0d004ae /dozentenmodul/src/main/java/org/openslx
parent[client] allow user to define bind mounts for container (diff)
downloadtutor-module-f420dcea6ee03dfd5ca70dd49ce1a2b4f9cbdd06.tar.gz
tutor-module-f420dcea6ee03dfd5ca70dd49ce1a2b4f9cbdd06.tar.xz
tutor-module-f420dcea6ee03dfd5ca70dd49ce1a2b4f9cbdd06.zip
[client] update ImageDetailsWindow for container
- text area shows now, in case if input method is a git repository, the provided url (currently no modification allowed - show BindMountTable in that view, to allow modification (TODO)
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java24
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java22
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java11
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/DockerfileUploadPage.java3
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java10
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java8
6 files changed, 54 insertions, 24 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 a392d7b8..b6cb1050 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
@@ -39,7 +39,9 @@ import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout;
import org.openslx.dozmod.gui.wizard.ImageUpdateWizard;
import org.openslx.dozmod.gui.wizard.LectureWizard;
+import org.openslx.dozmod.model.ContainerBuildContextMethod;
import org.openslx.dozmod.model.ContainerDefinition;
+import org.openslx.dozmod.model.ContainerMeta;
import org.openslx.dozmod.permissions.ImagePerms;
import org.openslx.dozmod.thrift.ImageDetailsActions;
import org.openslx.dozmod.thrift.Session;
@@ -807,9 +809,23 @@ import org.openslx.util.Util;
// TODO if only a single version is created an the user deletes it, next line will out of bounce!
containerDefinition = ContainerDefinition.fromByteArray(loadContainerDef(image.versions.get(0)));
- txtContainerDescription.setText(containerDefinition.getDescription());
- txtContainerImageName.setText(containerDefinition.getContainerMeta().getImageName());
- txtContainerRun.setText(containerDefinition.getContainerMeta().getRunOptions());
+ ContainerMeta containerMeta = containerDefinition.getContainerMeta();
+ ContainerBuildContextMethod method = ContainerBuildContextMethod.fromInt(
+ containerMeta.getBuildContextMethod());
+
+ switch (method) {
+ case FILE:
+ txtContainerDescription.setText(containerDefinition.getDescription());
+ break;
+ case GIT_REPOSITORY:
+ txtContainerDescription.setText(containerMeta.getBuildContextUrl());
+ txtContainerDescription.setEnabled(false);
+ break;
+ }
+
+ txtContainerImageName.setText(containerMeta.getImageName());
+ txtContainerRun.setText(containerMeta.getRunOptions());
+ bindMountTable.setData(containerMeta.getBindMountConfig(), true);
changeMonitor.add(txtContainerDescription).
addConstraint(new TextNotEmptyConstraint("Empty Dockerfile not allowed!"));
@@ -817,8 +833,6 @@ import org.openslx.util.Util;
.addConstraint(new TextNotEmptyConstraint("Empty Name not allowed!"));
changeMonitor.add(txtContainerRun)
.addConstraint(new TextNotEmptyConstraint("No Container Run Options provided!"));
- // TODO txtContainerMountUserDir txt Field needs a Constraint, only when chkContainerMountUserDir is selected;
- changeMonitor.add(txtContainerMountUserDir);
}
// fill share mode combo, if not already done
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
index f47d95e8..c1df6867 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java
@@ -24,6 +24,7 @@ import org.openslx.dozmod.gui.control.ComboBox;
import org.openslx.dozmod.gui.control.ComboBox.ComboBoxRenderer;
import org.openslx.dozmod.gui.control.PersonLabel;
import org.openslx.dozmod.gui.control.QLabel;
+import org.openslx.dozmod.gui.control.table.ContainerBindMountTable;
import org.openslx.dozmod.gui.control.table.ImageVersionTable;
import org.openslx.dozmod.gui.control.table.QScrollPane;
import org.openslx.dozmod.gui.helper.GridManager;
@@ -38,10 +39,11 @@ import org.openslx.thrifthelper.Comparators;
private final JPanel pnlTabContainer;
protected final JTextArea txtContainerDescription;
- protected final JCheckBox chkContainerMountUserDir;
protected final JTextField txtContainerRun;
protected final JTextField txtContainerImageName;
- protected final JTextField txtContainerMountUserDir;
+ protected final ContainerBindMountTable bindMountTable;
+ protected final JButton btnAddBindMount;
+ protected final JButton btnDelBindMount;
protected QLabel lblError;
protected final PersonLabel lblOwner;
@@ -296,11 +298,17 @@ import org.openslx.thrifthelper.Comparators;
grdContainerMeta.add(txtContainerRun, 2).fill(true, false);
grdContainerMeta.nextRow();
- grdContainerMeta.add(new QLabel("Mount User Directory"), 1);
- chkContainerMountUserDir = new JCheckBox();
- txtContainerMountUserDir = new JTextField();
- grdContainerMeta.add(chkContainerMountUserDir, 1);
- grdContainerMeta.add(txtContainerMountUserDir, 1).fill(true, false);
+ bindMountTable = new ContainerBindMountTable();
+ QScrollPane scrollPaneTable = new QScrollPane(bindMountTable);
+ grdContainerMeta.add(scrollPaneTable, 3).fill(true, true).expand(true, true);
+ grdContainerMeta.nextRow();
+
+ btnAddBindMount = new JButton("Add Bind Mount");
+ btnDelBindMount = new JButton("Remove Bind Mount");
+ grdContainerMeta.add(Box.createHorizontalBox(), 1).fill(true, false).expand(true, false);
+ grdContainerMeta.add(btnAddBindMount);
+ grdContainerMeta.add(btnDelBindMount);
+ grdContainerMeta.nextRow();
grdContainerMeta.finish(true);
GridManager grdContainer = new GridManager(pnlTabContainer, 1, false, new Insets(8, 2, 8, 2));
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java
index 3533d38f..df9e99fc 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java
@@ -6,6 +6,7 @@ import org.openslx.dozmod.gui.control.table.QScrollPane;
import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.WizardPage;
+import org.openslx.dozmod.model.ContainerBuildContextMethod;
import javax.swing.*;
import java.awt.*;
@@ -30,9 +31,7 @@ public class ContainerUploadPageLayout extends WizardPage {
protected final JButton btnAddBindMount;
protected final JButton btnDelBindMount;
- public enum BuildContextMethod {
- FILE, GIT_REPOSITORY;
- }
+
// TODO set proper Text labels
@@ -84,7 +83,7 @@ public class ContainerUploadPageLayout extends WizardPage {
tpInput.addTab("Dockerfile", p1);
tpInput.addTab("Git Repository", p2);
// tpInput.addTab("Simple Input", p3);
- tpInput.setSelectedIndex(BuildContextMethod.FILE.ordinal());
+ tpInput.setSelectedIndex(ContainerBuildContextMethod.FILE.ordinal());
grid.add(tpInput, 3).fill(true, false);
@@ -136,7 +135,7 @@ public class ContainerUploadPageLayout extends WizardPage {
grid.finish(true);
}
- protected BuildContextMethod getBuildContextMethod() {
- return BuildContextMethod.values()[tpInput.getSelectedIndex()];
+ protected ContainerBuildContextMethod getBuildContextMethod() {
+ return ContainerBuildContextMethod.fromInt(tpInput.getSelectedIndex());
}
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/DockerfileUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/DockerfileUploadPage.java
index 9e6e65ec..9eaf5cf6 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/DockerfileUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/DockerfileUploadPage.java
@@ -10,6 +10,7 @@ import org.openslx.dozmod.gui.window.ContainerBindMountWindow;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.layout.ContainerUploadPageLayout;
import org.openslx.dozmod.model.ContainerBindMount;
+import org.openslx.dozmod.model.ContainerBuildContextMethod;
import org.openslx.dozmod.model.ContainerDefinition;
import org.openslx.dozmod.model.ContainerMeta;
import org.openslx.dozmod.state.UploadWizardState;
@@ -200,7 +201,7 @@ public class DockerfileUploadPage extends ContainerUploadPageLayout {
}
private boolean checkUserInput() {
- BuildContextMethod method = getBuildContextMethod();
+ ContainerBuildContextMethod method = getBuildContextMethod();
switch (method) {
case FILE:
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java
new file mode 100644
index 00000000..6ed42ba8
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java
@@ -0,0 +1,10 @@
+package org.openslx.dozmod.model;
+
+public enum ContainerBuildContextMethod {
+
+ FILE, GIT_REPOSITORY;
+
+ public static ContainerBuildContextMethod fromInt(int index) {
+ return values()[index];
+ }
+}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java
index 56bbf3c1..089cea69 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java
@@ -1,7 +1,5 @@
package org.openslx.dozmod.model;
-import org.openslx.dozmod.gui.wizard.layout.ContainerUploadPageLayout;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -17,11 +15,11 @@ public class ContainerMeta {
private String build_context_url;
private String image_name;
private String run_options;
- private Collection<ContainerBindMount> bind_mount_config;
+ private List<ContainerBindMount> bind_mount_config;
public ContainerMeta() {
- build_context_method = ContainerUploadPageLayout.BuildContextMethod.FILE.ordinal();
+ build_context_method = ContainerBuildContextMethod.FILE.ordinal();
build_context_url = "";
image_name = "";
run_options = "";
@@ -60,7 +58,7 @@ public class ContainerMeta {
this.image_name = image_name;
}
- public Collection<ContainerBindMount> getBindMountConfig() {
+ public List<ContainerBindMount> getBindMountConfig() {
return bind_mount_config;
}