summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java
diff options
context:
space:
mode:
authorStephan Schwaer2015-08-21 15:17:41 +0200
committerStephan Schwaer2015-08-21 15:17:41 +0200
commitd99d4a7c5f9cdc38459d7ddc69269d4eebfb5ba9 (patch)
tree0366359f2cc75528d43c3c2cdeaa395357e6535e /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java
parent[client] ThriftAction in ImageCustomPermissionWindow (diff)
downloadtutor-module-d99d4a7c5f9cdc38459d7ddc69269d4eebfb5ba9.tar.gz
tutor-module-d99d4a7c5f9cdc38459d7ddc69269d4eebfb5ba9.tar.xz
tutor-module-d99d4a7c5f9cdc38459d7ddc69269d4eebfb5ba9.zip
[client] Added customLecturePermission
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java
new file mode 100644
index 00000000..11687086
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java
@@ -0,0 +1,76 @@
+package org.openslx.dozmod.gui.window;
+
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.apache.thrift.TException;
+import org.openslx.bwlp.thrift.iface.LecturePermissions;
+import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.helper.MessageType;
+import org.openslx.dozmod.gui.window.layout.LectureCustomPermissionWindowLayout;
+import org.openslx.dozmod.thrift.Session;
+import org.openslx.thrifthelper.ThriftManager;
+
+/**
+ * Window for modifying the custom permissions of an lecture.
+ */
+@SuppressWarnings("serial")
+public class LectureCustomPermissionWindow extends LectureCustomPermissionWindowLayout {
+
+ private static final Logger LOGGER = Logger.getLogger(LectureCustomPermissionWindow.class);
+
+ /**
+ * Self-reference
+ */
+ private final LectureCustomPermissionWindow me;
+
+ /**
+ * Don't use this constructor, use static function LectureCustomPermissionWindow.open instead.
+ */
+ protected LectureCustomPermissionWindow(final Frame modalParent, final Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions, final String lectureBaseId) {
+ super(modalParent);
+ me = this;
+
+ /**
+ * initialise the lecturePermissionManager
+ */
+ lecturePermissionManager.initPanel(permissionMap, defaultPermissions);
+
+ /**
+ * ActionListeners for the buttons.
+ */
+ btnSave.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // push permissions to satellite server
+ try {
+ ThriftManager.getSatClient().writeLecturePermissions(Session.getSatelliteToken(),
+ lectureBaseId, lecturePermissionManager.getMap());
+ } catch (TException er) {
+ Gui.showMessageBox(me, "Konnte Berechtigungen nicht an den Satelliten übertragen: ", MessageType.ERROR, LOGGER, er);
+ }
+ dispose();
+ }
+ });
+ btnClose.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ dispose();
+ }
+ });
+ }
+
+ /**
+ * Create new LecturePermissionWindow dialog
+ * @param modalParent parent of the popup window
+ * @param permissionMap the permissions of the lecture
+ * @param defaultPermissions default permissions of the lecture
+ * @param lectureBaseId baseId of the lecture, for which the permissionWindow should be opened
+ */
+ public static void open(Frame modalParent, Map<String, LecturePermissions> permissionMap, LecturePermissions defaultPermissions, String lectureBaseId) {
+ new LectureCustomPermissionWindow(modalParent, permissionMap, defaultPermissions, lectureBaseId).setVisible(true);
+ }
+}