diff options
author | Simon Rettberg | 2025-03-18 17:05:04 +0100 |
---|---|---|
committer | Simon Rettberg | 2025-03-18 17:05:04 +0100 |
commit | c4f2e5af28a2d594a1368fc3f77c3967a5ab759d (patch) | |
tree | ef2d05a79ec8ef06038107ac3a8752df2eaa52ec | |
parent | [client] Strip whitespaces around netshares (diff) | |
download | tutor-module-c4f2e5af28a2d594a1368fc3f77c3967a5ab759d.tar.gz tutor-module-c4f2e5af28a2d594a1368fc3f77c3967a5ab759d.tar.xz tutor-module-c4f2e5af28a2d594a1368fc3f77c3967a5ab759d.zip |
[client] LectureDetails: Show active predefined firewall rulesets
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 |