package org.openslx.dozmod.gui.wizard.page; import java.util.Map; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.LecturePermissions; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.LectureCustomPermissionPageLayout; import org.openslx.dozmod.state.LectureWizardState; import org.openslx.dozmod.thrift.Session; /** * Wizard page for setting custom permissions for the lecture to be created */ @SuppressWarnings("serial") public class LectureCustomPermissionPage extends LectureCustomPermissionPageLayout { private final static Logger LOGGER = Logger.getLogger(LectureCustomPermissionPage.class); private boolean initDone = false; private LectureWizardState state = null; /** * Page for setting custom permissions of a lecture */ public LectureCustomPermissionPage(Wizard wizard, LectureWizardState state) { super(wizard); this.state = state; chkPermissionEdit.setSelected(state.defaultPermissions.edit); chkPermissionAdmin.setSelected(state.defaultPermissions.admin); setPageComplete(true); } @Override protected void onPageEnter() { if (!initDone) { lectureCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions, Session.getUserId()); initDone = true; } } @Override protected boolean wantNextOrFinish() { LOGGER.debug("Saving permissions to state ..."); // save the table stuff to our upload wizard state state.defaultPermissions.edit = chkPermissionEdit.isSelected(); state.defaultPermissions.admin = chkPermissionAdmin.isSelected(); Map newPermissionMap = lectureCustomPermissionManager.getPermissions(); if (newPermissionMap == null || newPermissionMap.isEmpty()) { return true; } state.permissionMap = newPermissionMap; return true; } }