summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
authorSimon Rettberg2018-06-22 18:58:02 +0200
committerSimon Rettberg2018-06-22 18:58:02 +0200
commit00195150c868cbe76fcf6e1aee8fdd6f1e60e95b (patch)
tree60c024e39b62bac02ecad2a87da27660739688f9 /dozentenmodul/src/main/java
parent[client] Sanitize class/var names, split up control package (diff)
downloadtutor-module-00195150c868cbe76fcf6e1aee8fdd6f1e60e95b.tar.gz
tutor-module-00195150c868cbe76fcf6e1aee8fdd6f1e60e95b.tar.xz
tutor-module-00195150c868cbe76fcf6e1aee8fdd6f1e60e95b.zip
[client] Move netrules configurator into tab
Diffstat (limited to 'dozentenmodul/src/main/java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/changemonitor/DialogChangeMonitor.java19
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java105
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java16
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java124
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java72
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureNetrulesWindowLayout.java63
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureOptionsPageLayout.java17
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java21
8 files changed, 118 insertions, 319 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/changemonitor/DialogChangeMonitor.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/changemonitor/DialogChangeMonitor.java
index 7b2c879c..e11f1fdb 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/changemonitor/DialogChangeMonitor.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/changemonitor/DialogChangeMonitor.java
@@ -213,6 +213,25 @@ public class DialogChangeMonitor {
}
}
+
+ /**
+ * Simple validator that checks if object is not <code>null</code>
+ */
+ public static class NotNullConstraint<T> implements ValidationConstraint<T> {
+ private final String errorMsg;
+
+ public NotNullConstraint(String errorMessage) {
+ this.errorMsg = errorMessage;
+ }
+
+ @Override
+ public String checkStateValid(T userInput) {
+ if (userInput == null)
+ return errorMsg;
+ return null;
+ }
+
+ }
/*
* Default validators
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 cb80fc3e..e1c59863 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
@@ -1,7 +1,10 @@
package org.openslx.dozmod.gui.configurator;
import java.awt.Color;
+import java.awt.Container;
import java.awt.Insets;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.net.InetAddress;
@@ -20,6 +23,7 @@ import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
+import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
@@ -30,6 +34,7 @@ import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.NetDirection;
import org.openslx.bwlp.thrift.iface.NetRule;
import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.changemonitor.ListEditorWindow;
import org.openslx.dozmod.gui.control.WordWrapLabel;
import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.gui.helper.MessageType;
@@ -39,13 +44,15 @@ import org.openslx.util.Util;
/**
* Widget for netrules configuration of lectures
*/
-public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
+public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements ListEditorWindow<NetRule> {
private static final long serialVersionUID = -3497629601818983994L;
- private final static Logger LOGGER = Logger
- .getLogger(NetrulesConfigurator.class);
+ private final static Logger LOGGER = Logger.getLogger(NetrulesConfigurator.class);
+
+ private boolean checkChange = false;
+ private List<NetRule> currentState;
+ private List<ChangeListener> listeners;
- private String originalRawRuleText = null;
/**
* Character defining how the rules are parsed, e.g. for whitespace \\s
* Example: "8.8.8.8 80 in" would be split in -hostname "8.8.8.8" -port "80"
@@ -70,7 +77,7 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
final TextChangeListener docListener = new TextChangeListener() {
@Override
public void changed() {
- fireNetrulesConfigurationChangeEvent(new NetrulesConfigurationChangeEvent(NetrulesConfigurator.this));
+ checkChange = true;
}
};
final SimpleAttributeSet as = new SimpleAttributeSet();
@@ -111,10 +118,14 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
});
}
});
- }
-
- public boolean hasChanged() {
- return !originalRawRuleText.equalsIgnoreCase(tpNetworkRules.getText());
+ tpNetworkRules.addFocusListener(new FocusAdapter() {
+ @Override
+ public void focusLost(FocusEvent e) {
+ if (checkChange) {
+ fireChangeEvent();
+ }
+ }
+ });
}
/**
@@ -123,9 +134,32 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
*
* @return the list of rules as parsed by parseNetRules()
*/
+ @Override
+ public List<NetRule> getState() {
+ return getState(true);
+ }
+
public List<NetRule> getState(boolean silent) {
- // cleanup the TextPane for network rules if needed
- return parseNetRules(silent);
+ if (checkChange || !silent) {
+ currentState = parseNetRules(silent);
+ }
+ return currentState;
+ }
+
+ @Override
+ public void addChangeListener(ChangeListener l) {
+ if (listeners == null) {
+ listeners = new ArrayList<>();
+ }
+ listeners.add(l);
+ }
+
+ private void fireChangeEvent() {
+ if (listeners == null)
+ return;
+ for (ChangeListener cl : listeners) {
+ cl.stateChanged(null);
+ }
}
/**
@@ -136,9 +170,10 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
* as a list of NetRule to set the state to
*/
public void setState(final List<NetRule> netrules) {
- // setText() blanks the text area if null is given, so no null checks
- originalRawRuleText = decodeNetRulesToText(netrules);
- this.tpNetworkRules.setText(originalRawRuleText);
+ checkChange = true;
+ currentState = netrules;
+ this.tpNetworkRules.setText(decodeNetRulesToText(netrules));
+ fireChangeEvent();
}
/**
@@ -356,48 +391,6 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
return null;
}
- /**
- * Custom event mechanism to detect changes to the netrules list (Mostly
- * needed for the reactToChange() stuff in LectureDetailsWindow)
- */
- protected EventListenerList listenerList = new EventListenerList();
-
- public class NetrulesConfigurationChangeEvent extends EventObject {
-
- private static final long serialVersionUID = -8779550754760035845L;
-
- public NetrulesConfigurationChangeEvent(Object source) {
- super(source);
- }
- }
-
- public interface NetrulesConfigurationChangeEventListener extends
- EventListener {
- public void stateChanged(NetrulesConfigurationChangeEvent event);
- }
-
- public void addNetrulesConfigurationChangeEventListener(
- NetrulesConfigurationChangeEventListener listener) {
- listenerList.add(NetrulesConfigurationChangeEventListener.class,
- listener);
- }
-
- public void removeNetrulesConfigurationChangeEventListener(
- NetrulesConfigurationChangeEventListener listener) {
- listenerList.remove(NetrulesConfigurationChangeEventListener.class,
- listener);
- }
-
- void fireNetrulesConfigurationChangeEvent(
- NetrulesConfigurationChangeEvent evt) {
- Object[] listeners = listenerList.getListenerList();
- for (int i = 0; i < listeners.length; i++) {
- if (listeners[i] == NetrulesConfigurationChangeEventListener.class) {
- ((NetrulesConfigurationChangeEventListener) listeners[i + 1])
- .stateChanged(evt);
- }
- }
- }
}
/**
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
index 9794c37a..92abe8bf 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
@@ -34,6 +34,7 @@ import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.MainWindow;
import org.openslx.dozmod.gui.changemonitor.AbstractControlWrapper;
import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor;
+import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor.NotNullConstraint;
import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor.TextNotEmptyConstraint;
import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor.ValidationConstraint;
import org.openslx.dozmod.gui.helper.DateTimeHelper;
@@ -165,6 +166,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
changeMonitor.add(dtpStartDate).addConstraint(dateRangeValidator);
changeMonitor.add(spnEndTime).addConstraint(dateRangeValidator);
changeMonitor.add(spnStartTime).addConstraint(dateRangeValidator);
+ changeMonitor.add(ctlNetrulesConfigurator).addConstraint(new NotNullConstraint<List<NetRule>>("Fehlerhafte Netzwerkregeln"));
changeListenerPermissions = changeMonitor.add(ctlPermissionManager);
ctlLocationSelector.addToChangeMonitor(changeMonitor);
ctlRunscriptConfigurator.addToChangeMonitor(changeMonitor);
@@ -248,15 +250,6 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
};
chkCustomPermAdmin.addItemListener(updateDefaultPermissionListener);
chkCustomPermEdit.addItemListener(updateDefaultPermissionListener);
-
- btnNetrules.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- List<NetRule> newNetrules = LectureNetrulesWindow.open(me, lecture.networkExceptions, changeMonitor);
- if (newNetrules != null)
- lecture.networkExceptions = newNetrules;
- }
- });
// last step, the save button
btnSaveChanges.addActionListener(new ActionListener() {
@@ -328,6 +321,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
ctlRunscriptConfigurator.setState(lecture.runscript);
ctlNetshareConfigurator.setState(lecture.networkShares);
ctlLdapFilterConfigurator.setState(lecture.ldapFilters);
+ ctlNetrulesConfigurator.setState(lecture.networkExceptions);
txtTitle.setText(lecture.getLectureName());
lblTitleInfo.setText(lecture.getLectureName());
@@ -508,7 +502,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
ctlLocationSelector.getOnlyInSelection(),
// TODO: coming "false" is Location related
false, chkHasUsbAccess.isSelected());
- metadata.setNetworkExceptions(lecture.networkExceptions);
+ metadata.setNetworkExceptions(ctlNetrulesConfigurator.getState(false));
metadata.setNetworkShares(ctlNetshareConfigurator.getState());
metadata.setLdapFilters(ctlLdapFilterConfigurator.getState());
@@ -526,7 +520,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
if (changeListenerPermissions.isCurrentlyChanged()) {
try {
ThriftManager.getSatClient().writeLecturePermissions(Session.getSatelliteToken(),
- lecture.lectureId, customPermissions);
+ lecture.lectureId, ctlPermissionManager.getPermissions());
LOGGER.info("Successfully save new permissions");
} catch (TException e) {
ThriftError.showMessage(JOptionPane.getFrameForComponent(this), LOGGER, e,
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java
deleted file mode 100644
index e5b1659b..00000000
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.openslx.dozmod.gui.window;
-
-import java.awt.Window;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.event.ChangeListener;
-
-import org.apache.log4j.Logger;
-import org.openslx.bwlp.thrift.iface.NetRule;
-import org.openslx.dozmod.gui.Gui;
-import org.openslx.dozmod.gui.Gui.GuiCallable;
-import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor;
-import org.openslx.dozmod.gui.helper.MessageType;
-import org.openslx.dozmod.gui.helper.UiFeedback;
-import org.openslx.dozmod.gui.window.layout.LectureNetrulesWindowLayout;
-
-public class LectureNetrulesWindow extends LectureNetrulesWindowLayout
- implements UiFeedback {
-
- private static final long serialVersionUID = -1970717955867180231L;
- private static final Logger LOGGER = Logger
- .getLogger(LectureNetrulesWindow.class);
- private boolean apply = false;
- private List<NetRule> newRules = null;
-
- public LectureNetrulesWindow(Window modalParent,
- List<NetRule> netrules, DialogChangeMonitor changeMonitor) {
- super(modalParent);
-
- btnSave.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- newRules = ctlNetrulesConfigurator.getState(false);
- if (newRules == null) {
- return;
- }
- apply = true;
- dispose();
- }
- });
- // listeners for the buttons
- btnClose.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- safeClose();
- }
- });
- ctlNetrulesConfigurator.setState(netrules);
- changeMonitor.add(this).reset();
- }
-
- /**
- * @return list of ids of the selected locations. Will be either a new list
- * if the user clicked apply or the list received from the sat.
- */
- public List<NetRule> runAndReturn() {
- setVisible(true);
- if (!apply)
- return null;
- return newRules != null ? newRules : new ArrayList<NetRule>();
- }
-
- /**
- * Static method to open this window with
- *
- * @param modalParent
- * parent to this window
- * @param changeMonitor If you want to track changes...
- * @param locations
- * locations to preselect in the LocationSelector
- * @return forwards the return value of the window itself: list of ids of
- * the selected locations
- */
- public static List<NetRule> open(final Window modalParent,
- final List<NetRule> netrules, final DialogChangeMonitor changeMonitor) {
- return Gui.syncExec(new GuiCallable<List<NetRule>>() {
- @Override
- public List<NetRule> run() {
- return new LectureNetrulesWindow(modalParent, netrules, changeMonitor)
- .runAndReturn();
- }
- });
- }
-
- @Override
- public boolean wantConfirmQuit() {
- return false;
- }
-
- @Override
- public void escapePressed() {
- safeClose();
- }
- private void safeClose() {
- if (newRules != null) {
- if (Gui.showMessageBox("Änderungen werden verworfen. Wollen Sie wirklich abbrechen?", MessageType.ERROR_RETRY, LOGGER, null)) {
- dispose();
- }
- } else {
- dispose();
- }
- }
-
- @Override
- public List<NetRule> getState() {
- return ctlNetrulesConfigurator.getState(true);
- }
-
- @Override
- public void addChangeListener(final ChangeListener l) {
- addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosed(WindowEvent e) {
- l.stateChanged(null);
- }
- });
- }
-
-}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java
index 1508d95e..091c1133 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java
@@ -30,6 +30,7 @@ import org.openslx.bwlp.thrift.iface.ImageVersionDetails;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.configurator.LdapFilterConfigurator;
import org.openslx.dozmod.gui.configurator.LecturePermissionConfigurator;
+import org.openslx.dozmod.gui.configurator.NetrulesConfigurator;
import org.openslx.dozmod.gui.configurator.NetshareConfigurator;
import org.openslx.dozmod.gui.configurator.RunscriptConfigurator;
import org.openslx.dozmod.gui.control.ComboBox;
@@ -75,8 +76,6 @@ public abstract class LectureDetailsWindowLayout extends JDialog {
protected final JTextField txtId;
protected final QLabel lblUseCount;
- protected final JButton btnNetrules;
-
protected final QLabel lblError;
protected final JButton btnSaveChanges;
protected final JButton btnClose;
@@ -87,31 +86,25 @@ public abstract class LectureDetailsWindowLayout extends JDialog {
protected final JSpinner spnStartTime;
protected final JSpinner spnEndTime;
- protected JTabbedPane pnlTabs;
+ protected final JTabbedPane pnlTabs;
protected final LecturePermissionConfigurator ctlPermissionManager;
protected final LocationSelector ctlLocationSelector;
protected final RunscriptConfigurator ctlRunscriptConfigurator;
protected final NetshareConfigurator ctlNetshareConfigurator;
protected final LdapFilterConfigurator ctlLdapFilterConfigurator;
-
- private static final Properties pickerStrings = new Properties();
-
- protected JCheckBox chkCustomPermEdit;
- protected JCheckBox chkCustomPermAdmin;
- protected JPanel pnlTabGeneral;
- protected JPanel pnlTabInfo;
- protected JPanel pnlTabRestrictions;
- protected JPanel pnlTabPermissions;
- protected JPanel pnlTabLocations;
- protected JPanel pnlTabRunscript;
- protected JPanel pnlTabNetshare;
- protected JPanel pnlTabLdapFilter;
-
- static {
- pickerStrings.put("text.today", "Heute");
- pickerStrings.put("text.month", "Monat");
- pickerStrings.put("text.year", "Jahr");
- }
+ protected final NetrulesConfigurator ctlNetrulesConfigurator;
+
+ protected final JCheckBox chkCustomPermEdit;
+ protected final JCheckBox chkCustomPermAdmin;
+ protected final JPanel pnlTabGeneral;
+ protected final JPanel pnlTabInfo;
+ protected final JPanel pnlTabNetrules;
+ protected final JPanel pnlTabRestrictions;
+ protected final JPanel pnlTabPermissions;
+ protected final JPanel pnlTabLocations;
+ protected final JPanel pnlTabRunscript;
+ protected final JPanel pnlTabNetshare;
+ protected final JPanel pnlTabLdapFilter;
public LectureDetailsWindowLayout(Frame modalParent) {
super(modalParent, "Veranstaltungsdetails", ModalityType.APPLICATION_MODAL);
@@ -171,6 +164,7 @@ public abstract class LectureDetailsWindowLayout extends JDialog {
grdInfo.add(lblUseCount, 2);
grdInfo.finish(true);
+ // Make general tab
pnlTabGeneral = new JPanel();
pnlTabGeneral.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
GridManager grdGeneral = new GridManager(pnlTabGeneral, 5, true, new Insets(3, 3, 3, 3));
@@ -278,28 +272,35 @@ public abstract class LectureDetailsWindowLayout extends JDialog {
grdGeneral.add(chkIsActive, 4);
grdGeneral.nextRow();
grdGeneral.finish(true);
-
- pnlTabRestrictions = new JPanel();
- GridManager grdRestrictions = new GridManager(pnlTabRestrictions, 2, true, new Insets(9, 4, 2, 4));
+
Insets descriptionInset = new Insets(2, 4, 2, 4);
Insets firstInset = new Insets(12, 4, 2, 4);
-
+
+ // Network rules
+ pnlTabNetrules = new JPanel();
+ GridManager grdNetrules = new GridManager(pnlTabNetrules, 1, true, new Insets(9, 4, 2, 4));
// "restrictions": internet access / usb access / exam
chkHasInternetAccess = new JCheckBox("Netzwerk-/Internetzugriff zulassen");
- btnNetrules = new JButton("Ausnahmen...");
- grdRestrictions.add(chkHasInternetAccess).fill(true, false).expand(true, false).insets(firstInset);
- grdRestrictions.add(btnNetrules).fill(true, false).expand(true, false).insets(firstInset);
- grdRestrictions.nextRow();
- grdRestrictions.add(
+ grdNetrules.add(chkHasInternetAccess).expand(true, false).insets(firstInset);
+ grdNetrules.nextRow();
+ grdNetrules.add(
new WordWrapLabel(
"Legen Sie hier fest, ob die Veranstaltung Zugriff zum Internet haben soll."
- + " Unter 'Ausnahmen' können Sie bestimmte Adressen und Services"
- + " ein- oder ausschließen.", false, true), 2)
+ + " In der Liste können Sie bestimmte Adressen und Services"
+ + " ein- oder ausschließen.", false, true))
.fill(true, false)
.expand(true, false)
.insets(descriptionInset);
- grdRestrictions.nextRow();
-
+ grdNetrules.nextRow();
+ ctlNetrulesConfigurator = new NetrulesConfigurator();
+ grdNetrules.add(ctlNetrulesConfigurator).fill(true, true).expand(true, true);
+ grdNetrules.nextRow();
+ grdNetrules.finish(false);
+
+ // Tab restrictions
+ pnlTabRestrictions = new JPanel();
+ GridManager grdRestrictions = new GridManager(pnlTabRestrictions, 2, true, new Insets(9, 4, 2, 4));
+
chkHasUsbAccess = new JCheckBox("Externe Speichermedien zulassen");
grdRestrictions.add(chkHasUsbAccess, 2);
grdRestrictions.nextRow();
@@ -399,6 +400,7 @@ public abstract class LectureDetailsWindowLayout extends JDialog {
pnlTabs.addTab("Allgemein", pnlTabGeneral);
if (Session.isLectureRestrictionsSupported()) {
pnlTabs.addTab("Beschränkungen", pnlTabRestrictions);
+ pnlTabs.addTab("Firewall", pnlTabNetrules);
}
if (MetaDataCache.getLocations() != null && !MetaDataCache.getLocations().isEmpty()) {
pnlTabs.addTab("Raumauswahl", pnlTabLocations);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureNetrulesWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureNetrulesWindowLayout.java
deleted file mode 100644
index d6f13d8f..00000000
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureNetrulesWindowLayout.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.openslx.dozmod.gui.window.layout;
-
-import java.awt.BorderLayout;
-import java.awt.Window;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.util.List;
-
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JPanel;
-import javax.swing.event.ChangeListener;
-
-import org.openslx.bwlp.thrift.iface.NetRule;
-import org.openslx.dozmod.gui.Gui;
-import org.openslx.dozmod.gui.changemonitor.ListEditorWindow;
-import org.openslx.dozmod.gui.configurator.NetrulesConfigurator;
-
-public abstract class LectureNetrulesWindowLayout extends JDialog implements ListEditorWindow<NetRule> {
-
- private static final long serialVersionUID = 5565439063675405598L;
-
- private final static String txtTitle = "Erweiterte Einstellungen";
- private final static String txtButtonClose = "Abbrechen";
- private final static String txtButtonSave = "Übernehmen";
-
- protected final NetrulesConfigurator ctlNetrulesConfigurator;
-
- private final JPanel pnlBottomButtons;
- protected final JButton btnSave;
- protected final JButton btnClose;
-
- public LectureNetrulesWindowLayout(Window modalParent) {
- super(modalParent, txtTitle, modalParent != null ? ModalityType.APPLICATION_MODAL
- : ModalityType.MODELESS);
-
- // the main content widget
- ctlNetrulesConfigurator = new NetrulesConfigurator();
-
- // init the layout
- getContentPane().setLayout(new BorderLayout());
- getContentPane().add(ctlNetrulesConfigurator, BorderLayout.CENTER);
-
- // bottom panel for controls
- pnlBottomButtons = new JPanel();
- pnlBottomButtons.setLayout(new BoxLayout(pnlBottomButtons, BoxLayout.LINE_AXIS));
- pnlBottomButtons.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
- btnClose = new JButton(txtButtonClose);
- btnSave = new JButton(txtButtonSave);
- pnlBottomButtons.add(Box.createHorizontalGlue());
- pnlBottomButtons.add(btnClose);
- pnlBottomButtons.add(btnSave);
- getContentPane().add(pnlBottomButtons, BorderLayout.PAGE_END);
-
- setPreferredSize(Gui.getScaledDimension(500, 400));
- pack();
- Gui.centerShellOverShell(modalParent, this);
- }
-
-}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureOptionsPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureOptionsPageLayout.java
index 51ac6491..86c68e44 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureOptionsPageLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureOptionsPageLayout.java
@@ -1,7 +1,6 @@
package org.openslx.dozmod.gui.wizard.layout;
import javax.swing.Box;
-import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
@@ -19,7 +18,6 @@ public abstract class LectureOptionsPageLayout extends WizardPage {
protected final JCheckBox chkIsExam;
protected final JCheckBox chkAutoUpdate;
protected final JCheckBox chkIsActive;
- protected final JButton btnNetrules;
/**
* Page for additional options of lecture
@@ -27,41 +25,40 @@ public abstract class LectureOptionsPageLayout extends WizardPage {
public LectureOptionsPageLayout(Wizard wizard) {
super(wizard, title);
setDescription("Bitte wählen Sie aus folgenden Optionen aus:");
- GridManager grid = new GridManager(this, 3);
+ GridManager grid = new GridManager(this, 2);
// first column for labels hopefully clearing up some of the mess...
// first category for general options
JLabel lblGeneral = new JLabel("Allgemeines");
grid.add(lblGeneral);
chkAutoUpdate = new JCheckBox("Immer auf aktuellste VM-Version updaten", true);
- grid.add(chkAutoUpdate, 2);
+ grid.add(chkAutoUpdate);
grid.nextRow();
chkIsActive = new JCheckBox("Veranstaltung ist aktiv", true);
grid.skip();
- grid.add(chkIsActive, 2);
+ grid.add(chkIsActive);
grid.nextRow();
chkIsExam = new JCheckBox("Veranstaltung ist eine Prüfung", false);
grid.skip();
- grid.add(chkIsExam, 2);
+ grid.add(chkIsExam);
grid.nextRow();
- grid.add(Box.createVerticalStrut(10), 3);
+ grid.add(Box.createVerticalStrut(10), 2);
grid.nextRow();
// second category for restrictions options
JLabel lblRestriction = new JLabel("Beschränkungen");
grid.add(lblRestriction);
chkInternetEnabled = new JCheckBox("Netzwerk-/Internetzugriff zulassen", true);
- btnNetrules = new JButton("Ausnahmen...");
+ // TODO: Hint at exception editor in lecture details window, or include here...
grid.add(chkInternetEnabled).fill(true, false).expand(true, false);
- grid.add(btnNetrules);
grid.nextRow();
chkUsbEnabled = new JCheckBox("Speichermedien zulassen", true);
grid.skip();
- grid.add(chkUsbEnabled, 2);
+ grid.add(chkUsbEnabled);
grid.nextRow();
grid.finish(true);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java
index 73dc407e..a9d5bcef 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java
@@ -1,14 +1,8 @@
package org.openslx.dozmod.gui.wizard.page;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
import java.util.List;
-import javax.swing.SwingUtilities;
-
import org.openslx.bwlp.thrift.iface.NetRule;
-import org.openslx.dozmod.gui.window.LectureNetrulesWindow;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.layout.LectureOptionsPageLayout;
import org.openslx.dozmod.state.LectureWizardState;
@@ -17,9 +11,8 @@ import org.openslx.dozmod.thrift.Session;
@SuppressWarnings("serial")
public class LectureOptionsPage extends LectureOptionsPageLayout {
- private LectureOptionsPage me = this;
private LectureWizardState state = null;
- private List<NetRule> currentNetrules = new ArrayList<NetRule>();
+ private List<NetRule> currentNetrules;
private String currentRunscript = new String("");
/**
@@ -32,22 +25,10 @@ public class LectureOptionsPage extends LectureOptionsPageLayout {
this.currentRunscript = state.runScriptText;
setPageComplete(true);
- btnNetrules.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- List<NetRule> newNetrules = LectureNetrulesWindow.open(
- SwingUtilities.getWindowAncestor(me), currentNetrules, null);
- if (newNetrules != null) {
- currentNetrules = newNetrules;
- updateState();
- }
- }
- });
if (!Session.isLectureRestrictionsSupported()) {
chkIsExam.setEnabled(false);
chkInternetEnabled.setEnabled(false);
chkUsbEnabled.setEnabled(false);
- btnNetrules.setEnabled(false);
}
}