package org.openslx.dozmod.gui.window; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Map; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.LecturePermissions; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.LecturePermissionWindowLayout; /** * Window for modifying the custom permissions of an lecture. */ @SuppressWarnings("serial") public class LecturePermissionWindow extends LecturePermissionWindowLayout implements UiFeedback { private static final Logger LOGGER = Logger.getLogger(LecturePermissionWindow.class); private boolean okUsed = false; /** * Don't use this constructor, use static function * LectureCustomPermissionWindow.open instead. */ protected LecturePermissionWindow(final Window modalParent, final Map permissionMap, final LecturePermissions defaultPermissions, String ownerId) { super(modalParent); /** * initialise the lecturePermissionManager */ ctlPermissionManager.initPanel(permissionMap, defaultPermissions, ownerId); chkCustomPermAdmin.setSelected(defaultPermissions.admin); chkCustomPermEdit.setSelected(defaultPermissions.edit); ActionListener updateDefaultPermissionListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ctlPermissionManager.updateDefaultPermissions(chkCustomPermAdmin.isSelected(), chkCustomPermEdit.isSelected()); } }; chkCustomPermAdmin.addActionListener(updateDefaultPermissionListener); chkCustomPermEdit.addActionListener(updateDefaultPermissionListener); /** * ActionListeners for the buttons. */ btnOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { okUsed = true; dispose(); } }); btnClose.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { dispose(); } }); } /** * Set a created ImageCustomPermissionWindow visible and return resulting * permissions * * @return PermissionDefaultToCustomLink with default- and customPermissions * when using OK button, null otherwise */ private void run() { setVisible(true); if (okUsed) ctlPermissionManager.getPermissions(); } /** * Create new LecturePermissionWindow dialog * * @param modalParent parentwindow of the popup window * @param permissionMap the permissions of the lecture * @param defaultPermissions default permissions of the lecture * @param ownerId Id not to be shown in the list to add new users. Can be * null. * @return PermissionDefaultToCustomLink with new permissions of null, if * abort button has been used */ public static void open(Window modalParent, Map permissionMap, LecturePermissions defaultPermissions, String ownerId) { new LecturePermissionWindow(modalParent, permissionMap, defaultPermissions, ownerId).run(); } @Override public boolean wantConfirmQuit() { // TODO only return true if user added something new in the list return false; } @Override public void escapePressed() { dispose(); } }