summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java
blob: 116870868893623a6a9a0da5e1510ccf42a6cc0f (plain) (tree)











































































                                                                                                                                                                                                        
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);
	}
}