package org.openslx.dozmod.gui.wizard.page; import java.util.Map; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.ImageCustomPermissionPageLayout; import org.openslx.dozmod.state.UploadWizardState; import org.openslx.dozmod.thrift.Session; @SuppressWarnings("serial") public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { private final static Logger LOGGER = Logger.getLogger(ImageCustomPermissionPage.class); private boolean initDone = false; private UploadWizardState state = null; /** * wizard page for setting custom permissions * * @param wizard */ public ImageCustomPermissionPage(Wizard wizard, UploadWizardState uploadWizardState) { super(wizard); setPageComplete(true); this.state = uploadWizardState; chkPermissionLink.setSelected(state.defaultPermissions.link); chkPermissionRead.setSelected(state.defaultPermissions.download); chkPermissionEdit.setSelected(state.defaultPermissions.edit); chkPermissionAdmin.setSelected(state.defaultPermissions.admin); } @Override protected void onPageEnter() { if (!initDone) { imageCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions, Session.getUserId()); initDone = true; } } @Override protected boolean wantNextOrFinish() { LOGGER.debug("Saving permissions to state ..."); // saving the default permissions state.defaultPermissions = new ImagePermissions(chkPermissionLink.isSelected(), chkPermissionRead.isSelected(), chkPermissionEdit.isSelected(), chkPermissionAdmin.isSelected()); // save the table stuff to our upload wizard state Map newPermissionMap = imageCustomPermissionManager.getPermissions(); if (newPermissionMap == null || newPermissionMap.isEmpty()) return super.wantNextOrFinish(); state.permissionMap = newPermissionMap; return super.wantNextOrFinish(); } }