summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2025-03-18 17:05:04 +0100
committerSimon Rettberg2025-03-18 17:05:04 +0100
commitc4f2e5af28a2d594a1368fc3f77c3967a5ab759d (patch)
treeef2d05a79ec8ef06038107ac3a8752df2eaa52ec
parent[client] Strip whitespaces around netshares (diff)
downloadtutor-module-c4f2e5af28a2d594a1368fc3f77c3967a5ab759d.tar.gz
tutor-module-c4f2e5af28a2d594a1368fc3f77c3967a5ab759d.tar.xz
tutor-module-c4f2e5af28a2d594a1368fc3f77c3967a5ab759d.zip
[client] LectureDetails: Show active predefined firewall rulesets
-rwxr-xr-xdozentenmodul/pom.xml2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java54
-rw-r--r--dozentenmodul/src/main/properties/i18n/configurator.properties5
-rw-r--r--dozentenmodul/src/main/properties/i18n/configurator_de_DE.properties3
-rw-r--r--dozentenmodul/src/main/properties/i18n/configurator_tr_TR.properties5
5 files changed, 59 insertions, 10 deletions
diff --git a/dozentenmodul/pom.xml b/dozentenmodul/pom.xml
index 0a250227..fb0684f0 100755
--- a/dozentenmodul/pom.xml
+++ b/dozentenmodul/pom.xml
@@ -171,7 +171,7 @@
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
- <version>[5.0,5.9999.9999.9999]</version>
+ <version>[5.0,5.9999]</version>
<scope>compile</scope>
</dependency>
<dependency>
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java
index c2d67ea9..1d5a9c2f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java
@@ -25,6 +25,7 @@ import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
+import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
@@ -191,12 +192,12 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements
btnShowPresets.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- showPresetSelector();
+ showPresetSelectorPopup();
}
});
}
- private void showPresetSelector() {
+ private void showPresetSelectorPopup() {
if (predefinedRules == null) {
Gui.showMessageBox(I18n.CONFIGURATOR.getString("NetRules.Message.error.noPredefinedRules"),
MessageType.ERROR, null, null);
@@ -225,7 +226,7 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements
dialog.setMinimumSize(dd);
dialog.setPreferredSize(dd);
GridManager grid = new GridManager(pane, 3, true, new Insets(2, 2, 2, 2));
- grid.add(new WordWrapLabel(I18n.CONFIGURATOR.getString("NetRules.Label.predefinedRules.text")), 3);
+ grid.add(new JLabel(I18n.CONFIGURATOR.getString("NetRules.Label.predefinedRules.text")), 3);
grid.nextRow();
final Map<ButtonModel, Integer> mapper = new HashMap<>();
for (PresetNetRule ruleSet : predefinedRules) {
@@ -272,6 +273,7 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements
if (selectedRules.get() != null) {
// User clicked OK
lecture.presetNetworkExceptionIds = currentState.selectedPresets = selectedRules.get();
+ updatePredefinedDisplayList();
checkChange = true;
fireChangeEvent();
}
@@ -324,6 +326,7 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements
checkChange = true;
this.lecture = lecture;
this.tpNetworkRules.setText(decodeNetRulesToText(lecture.networkExceptions));
+ updatePredefinedDisplayList();
fireChangeEvent();
}
@@ -574,6 +577,39 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements
return null;
}
+ private void updatePredefinedDisplayList() {
+ pnlPredefinedActiveList.removeAll();
+ if (currentState.selectedPresets.isEmpty()) {
+ scpPredefinedActiveList.setVisible(false);
+ } else {
+ scpPredefinedActiveList.setVisible(true);
+ GridManager g = new GridManager(pnlPredefinedActiveList, 1, true, new Insets(2, 0, 2, 0));
+ g.add(new JLabel(
+ "-- " + I18n.CONFIGURATOR.getString("NetRules.Label.activePredefinedRules.text") + " --"))
+ .fill(true, true)
+ .expand(true, false);
+ g.nextRow();
+ for (PresetNetRule rule : predefinedRules) {
+ if (currentState.selectedPresets.contains(rule.ruleId)) {
+ g.add(new JLabel(rule.displayName)).fill(true, true).expand(true, false);
+ g.nextRow();
+ }
+ }
+ /*
+ for (int i = (int) (Math.random() * 25); i > 0; --i) {
+ g.add(new JLabel(Integer.toString(i))).fill(true, true).expand(true, false);
+ g.nextRow();
+ }
+ */
+ g.finish(false);
+ pnlPredefinedActiveList.revalidate();
+ scpPredefinedActiveList.setMinimumSize(
+ new Dimension(10,
+ Math.min(80, pnlPredefinedActiveList.getPreferredSize().height) + 3));
+ }
+ this.revalidate();
+ }
+
}
/**
@@ -586,11 +622,13 @@ class NetrulesConfiguratorLayout extends JPanel {
protected final JTextPane tpNetworkRules;
protected final JButton btnCheckRules;
protected final JButton btnShowPresets;
+ protected JPanel pnlPredefinedActiveList;
+ protected JScrollPane scpPredefinedActiveList;
public NetrulesConfiguratorLayout() {
GridManager grid = new GridManager(this, 2, true,
- new Insets(5, 5, 5, 5));
+ new Insets(3, 5, 3, 5));
// middle panel for network rules
this.setBorder(BorderFactory.createTitledBorder(I18n.CONFIGURATOR.getString("NetRules.TitledBorder.title")));
@@ -615,6 +653,14 @@ class NetrulesConfiguratorLayout extends JPanel {
.fill(true, true).expand(true, true);
grid.nextRow();
+ pnlPredefinedActiveList = new JPanel();
+ scpPredefinedActiveList = new JScrollPane(pnlPredefinedActiveList,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ grid.add(scpPredefinedActiveList, 2)
+ .fill(true, true).expand(true, false);
+ grid.nextRow();
+
btnShowPresets = new JButton(I18n.CONFIGURATOR.getString("NetRules.Button.showPresets.text"));
grid.add(btnShowPresets, 2).anchor(GridBagConstraints.LINE_END);
grid.nextRow();
diff --git a/dozentenmodul/src/main/properties/i18n/configurator.properties b/dozentenmodul/src/main/properties/i18n/configurator.properties
index 625cb357..0d12b605 100644
--- a/dozentenmodul/src/main/properties/i18n/configurator.properties
+++ b/dozentenmodul/src/main/properties/i18n/configurator.properties
@@ -27,9 +27,10 @@ LecturePermission.Button.addUser.caption=Add
# NetRulesConfigurator
NetRules.Message.error.noPredefinedRules=Wah wah wah! Null preset list
NetRules.Dialog.dialog.title=Selection
-NetRules.Label.predefinedRules.text=Predefined rules:
+NetRules.Label.predefinedRules.text=Predefined rulesets:
+NetRules.Label.activePredefinedRules.text=Active predefined rulesets
NetRules.Button.cancel.text=Cancel
-NetRules.Button.ok.text=Save
+NetRules.Button.ok.text=OK
NetRules.Message.error.tooManyFields=Line {0}: too many fields.\n
NetRules.Message.error.tooFewFields=Line {0}: too few fields.\n
NetRules.Message.error.invalidNetDirection=Line {0}: Invalid direction. Please use ''IN'' or ''OUT''.\n
diff --git a/dozentenmodul/src/main/properties/i18n/configurator_de_DE.properties b/dozentenmodul/src/main/properties/i18n/configurator_de_DE.properties
index 6e5f7caa..bc2e0562 100644
--- a/dozentenmodul/src/main/properties/i18n/configurator_de_DE.properties
+++ b/dozentenmodul/src/main/properties/i18n/configurator_de_DE.properties
@@ -28,8 +28,9 @@ LecturePermission.Button.addUser.caption=Hinzufügen
NetRules.Message.error.noPredefinedRules=Wah wah wah! Null preset list
NetRules.Dialog.dialog.title=Auswahl
NetRules.Label.predefinedRules.text=Vordefinierte Regelsets:
+NetRules.Label.activePredefinedRules.text=Aktive vordefinierte Regelsets
NetRules.Button.cancel.text=Abbrechen
-NetRules.Button.ok.text=Speichern
+NetRules.Button.ok.text=OK
NetRules.Message.error.tooManyFields=Zeile {0}: Zu viele Felder.\n
NetRules.Message.error.tooFewFields=Zeile {0}: Zu wenig Felder.\n
NetRules.Message.error.invalidNetDirection=Zeile {0}: Ungültige Richtung. Bitte nutzen Sie ''IN'' bzw. ''OUT''.\n
diff --git a/dozentenmodul/src/main/properties/i18n/configurator_tr_TR.properties b/dozentenmodul/src/main/properties/i18n/configurator_tr_TR.properties
index d245d61b..d8ea0ab0 100644
--- a/dozentenmodul/src/main/properties/i18n/configurator_tr_TR.properties
+++ b/dozentenmodul/src/main/properties/i18n/configurator_tr_TR.properties
@@ -28,8 +28,9 @@ LecturePermission.Button.addUser.caption=Ekle
NetRules.Message.error.noPredefinedRules=Wah wah wah! Null preset list
NetRules.Dialog.dialog.title=Seçim
NetRules.Label.predefinedRules.text=Tanımlı kurallar:
+NetRules.Label.activePredefinedRules.text=Etkin önceden tanımlı kurallar kümesi
NetRules.Button.cancel.text=İptal
-NetRules.Button.ok.text=Kaydet
+NetRules.Button.ok.text=Uygula
NetRules.Message.error.tooManyFields=Satır {0}: Çok fazla alan.\n
NetRules.Message.error.tooFewFields=Satır {0}: Çok az alan.\n
NetRules.Message.error.invalidNetDirection=Satır {0}: Geçersiz yön. Lütfen ''IN'' veya ''OUT'' kullanın.\n
@@ -128,4 +129,4 @@ Startup.SoundState.unmuted=Etkin
# ContainerBindMountConfigurator
ContainerBindMount.BindMount.text=Bind Mount Konfigürasyonu
ContainerBindMount.Button.AddBindMount.text=Bind Mount ekle
-ContainerBindMount.Button.DeleteBindMount.text=Bind Mount kaldır \ No newline at end of file
+ContainerBindMount.Button.DeleteBindMount.text=Bind Mount kaldır