diff options
author | Stephan Schwaer | 2015-08-21 15:17:41 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-21 15:17:41 +0200 |
commit | d99d4a7c5f9cdc38459d7ddc69269d4eebfb5ba9 (patch) | |
tree | 0366359f2cc75528d43c3c2cdeaa395357e6535e /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java | |
parent | [client] ThriftAction in ImageCustomPermissionWindow (diff) | |
download | tutor-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.java | 76 |
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); + } +} |