diff options
Diffstat (limited to 'dozentenmodul/src')
11 files changed, 39 insertions, 90 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java index a105437d..22f1111d 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java @@ -108,11 +108,9 @@ public class LectureCustomPermissionManager extends JPanel{ this.newPermissionMap = permissionMap == null ? new HashMap<String, LecturePermissions>() : permissionMap; permissionList.clear(); this.defaultPermissions = defaultPermissions; - for (Entry<String, LecturePermissions> e : newPermissionMap.entrySet()) { permissionList.add(new UserLecturePermissions(e.getKey(), e.getValue())); } - permissionTable.setData(permissionList, false); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index bf8fd2ba..57264e34 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -137,8 +137,6 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe @Override public void actionPerformed(ActionEvent arg0) { ImageCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, image.defaultPermissions, image.imageBaseId); - - } }); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java index b1b077ee..28e0f619 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java @@ -134,7 +134,7 @@ public class ImageWizard extends Wizard implements UiFeedback { LOGGER.error("No vm meta data set in state!"); return false; } - if (uploadWizardState.permissions == null) { + if (uploadWizardState.defaultPermissions == null) { LOGGER.error("No permissions set in state!"); return false; } @@ -153,7 +153,7 @@ public class ImageWizard extends Wizard implements UiFeedback { // build imageBaseWrite return new ImageBaseWrite(uploadWizardState.name, uploadWizardState.description, uploadWizardState.selectedOs.getOsId(), uploadWizardState.meta.getVirtualizer().getVirtId(), - uploadWizardState.isTemplate, uploadWizardState.permissions, uploadWizardState.shareMode); + uploadWizardState.isTemplate, uploadWizardState.defaultPermissions, uploadWizardState.shareMode); } @Override diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java index e3d9d2d1..b29fe91f 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java @@ -87,8 +87,10 @@ public class LectureWizard extends Wizard implements UiFeedback { // push to sat state.uuid = ThriftManager.getSatClient().createLecture(Session.getSatelliteToken(), lectureWriteFromState()); + if(state.permissionMap != null && !state.permissionMap.isEmpty()) + ThriftManager.getSatClient().writeLecturePermissions(Session.getSatelliteToken(), state.uuid, state.permissionMap); } catch (TException e) { - ThriftError.showMessage(this, LOGGER, e, "Fail to create lecture"); + ThriftError.showMessage(this, LOGGER, e, "Failed to create lecture"); return false; } if (Gui.showMessageBox(this, "Veranstaltung erstellt! Wollen Sie zur Übersicht wechseln?", @@ -96,7 +98,6 @@ public class LectureWizard extends Wizard implements UiFeedback { LectureCache.get(true); MainWindow.showPage(LectureListWindow.class); } - // TODO evaluate table state and create the map of permissions // TODO run the actually request over external threaded class return true; } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java index 7e32d35d..14dbd247 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java @@ -23,7 +23,6 @@ public class ImageCustomPermissionPageLayout extends WizardPage { imageCustomPermissionManager = new ImageCustomPermissionManager(); grid.add(imageCustomPermissionManager).fill(true, true).expand(true, true); grid.nextRow(); - grid.finish(true); } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java index d27f6001..ff832c43 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java @@ -1,23 +1,14 @@ package org.openslx.dozmod.gui.wizard.layout; -import javax.swing.JButton; -import javax.swing.JPanel; -import javax.swing.JScrollPane; - -import org.openslx.dozmod.gui.control.table.LecturePermissionTable; +import org.openslx.dozmod.gui.control.LectureCustomPermissionManager; import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.WizardPage; @SuppressWarnings("serial") public abstract class LectureCustomPermissionPageLayout extends WizardPage { - - protected LecturePermissionTable permissionTableViewer; - protected JButton addUser; - protected JButton removeUser; - - String addUserLabel = "Benutzer hinzufügen"; - String removeUserLabel = "Benutzer entfernen"; + + protected LectureCustomPermissionManager lectureCustomPermissionManager; /** * Page for setting custom permissions of a lecture @@ -27,20 +18,10 @@ public abstract class LectureCustomPermissionPageLayout extends WizardPage { setDescription("Setzen Sie bei Bedarf benutzerdefinierte Berechtigungen"); GridManager grid = new GridManager(this, 1, false); - // TableViewer on the table - permissionTableViewer = new LecturePermissionTable(); - grid.add(new JScrollPane(permissionTableViewer)).fill(true, true).expand(true,true); + lectureCustomPermissionManager = new LectureCustomPermissionManager(); + grid.add(lectureCustomPermissionManager).fill(true, true).expand(true, true); grid.nextRow(); - - // Buttons below table - JPanel panel = new JPanel(); - addUser = new JButton(addUserLabel); - removeUser = new JButton(removeUserLabel); - panel.add(addUser); - panel.add(removeUser); - grid.add(panel); - grid.nextRow(); - + grid.finish(true); } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java index 901309a1..f6cfe0b7 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java @@ -31,7 +31,7 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { @Override protected void onPageEnter() { if(!initDone){ - imageCustomPermissionManager.initPanel(state.permissionMap, state.permissions); + imageCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions); initDone = true; } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java index b4e9816c..169bade3 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java @@ -95,7 +95,7 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { @Override protected boolean wantNextOrFinish() { - state.permissions = new ImagePermissions(linkPermissionsCheck.isSelected(), + state.defaultPermissions = new ImagePermissions(linkPermissionsCheck.isSelected(), readPermissionsCheck.isSelected(), writePermissionsCheck.isSelected(), adminPermissionsCheck.isSelected()); state.selectedOs = (OperatingSystem)osCombo.getSelectedItem(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java index 52a6ca35..d4c70d5a 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java @@ -1,17 +1,9 @@ package org.openslx.dozmod.gui.wizard.page; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; - -import javax.swing.JOptionPane; +import java.util.Map; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.LecturePermissions; -import org.openslx.bwlp.thrift.iface.UserInfo; -import org.openslx.dozmod.gui.control.table.LecturePermissionTable.UserLecturePermissions; -import org.openslx.dozmod.gui.window.UserListWindow; -import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.LectureCustomPermissionPageLayout; import org.openslx.dozmod.state.LectureWizardState; @@ -21,11 +13,9 @@ public class LectureCustomPermissionPage extends LectureCustomPermissionPageLayo private final static Logger LOGGER = Logger.getLogger(LectureCustomPermissionPage.class); - private LectureWizardState state = null; - - private final LectureCustomPermissionPage me = this; + private boolean initDone = false; - private ArrayList<UserLecturePermissions> permissionList = new ArrayList<>(); + private LectureWizardState state = null; /** * Page for setting custom permissions of a lecture @@ -33,46 +23,28 @@ public class LectureCustomPermissionPage extends LectureCustomPermissionPageLayo public LectureCustomPermissionPage(Wizard wizard, LectureWizardState state) { super(wizard); this.state = state; + setPageComplete(true); + } - addUser.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - // TODO again: which frame to giev? JOptionPane.getFrameForComponent(me) sounds cool at least :) - UserListWindow.open(JOptionPane.getFrameForComponent(me), new UserAddedCallback() { - @Override - public void userAdded(final UserInfo newUser, UserListWindow window) { + @Override + protected void onPageEnter() { + if(!initDone){ + lectureCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions); + initDone = true; + } + } - // check if we have this user already - for (UserLecturePermissions current : permissionList) { - if (current.userId.equals(newUser.userId)) { - // user already in the list, skip it - LOGGER.debug("User already present in the list, skipping!"); - return; - } - } - // TODO use default permissions if they exist - // add it to the list with either default permissions if set, or none - permissionList.add(new UserLecturePermissions(newUser.userId, new LecturePermissions( - true, false))); - LOGGER.debug("User added: " + newUser); - permissionTableViewer.setData(permissionList, false); - } - }, "Hinzufügen"); - } - }); - // delete user button adapter - removeUser.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - final UserLecturePermissions selected = permissionTableViewer.getSelectedItem(); - LOGGER.debug("Removing: " + selected); - if (!permissionList.remove(selected)) { - LOGGER.debug("Could not remove: " + selected); - } - permissionTableViewer.setData(permissionList, false); - } - }); - // no requirements before finishing - setPageComplete(true); + + @Override + protected boolean wantNextOrFinish() { + LOGGER.debug("Saving permissions to state ..."); + // save the table stuff to our upload wizard state + Map<String, LecturePermissions> newPermissionMap = lectureCustomPermissionManager.getMap(); + if (newPermissionMap == null || newPermissionMap.isEmpty()){ + return true; + } + state.permissionMap = newPermissionMap; + return true; } + } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java b/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java index bb64bf77..313c9c9d 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java @@ -23,7 +23,7 @@ public class LectureWizardState { // TODO: defaults per sat public LecturePermissions defaultPermissions = Session.getSatelliteConfig().defaultLecturePermissions; // explicit permissions per user as set by the creator - public Map<String, LecturePermissions> permissionList = null; + public Map<String, LecturePermissions> permissionMap = null; // -- thrift internal stuff -- public String uuid = null; } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java index f087fd5f..d0e46d03 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java @@ -27,7 +27,7 @@ public class UploadWizardState { public File diskFile = null; // permissions assigned to that image by the user // TODO: defaults per sat - public ImagePermissions permissions = null; + public ImagePermissions defaultPermissions = null; // explicit permissions per user as set by the creator public Map<String, ImagePermissions> permissionMap = null; // local, publish, download frozen share mode |