diff options
author | Jonathan Bauer | 2015-08-07 17:29:16 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-07 17:29:16 +0200 |
commit | 61e12701afeb2766fcea6d6ccf6dbeabddaf78d8 (patch) | |
tree | 17a39bfaad7729226b30eab5529be7e0139effa9 /dozentenmodul/src/main/java/org/openslx | |
parent | [client] better add user popup for lecture permisssion page of wizard (diff) | |
download | tutor-module-61e12701afeb2766fcea6d6ccf6dbeabddaf78d8.tar.gz tutor-module-61e12701afeb2766fcea6d6ccf6dbeabddaf78d8.tar.xz tutor-module-61e12701afeb2766fcea6d6ccf6dbeabddaf78d8.zip |
[client] make image details editable also if user has admin rights or if he does not have any custom permissions, the default permissions allows it
and some code cleanup
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
3 files changed, 45 insertions, 24 deletions
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 15adc4f3..be2ff02c 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 @@ -46,10 +46,17 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { public ImageDetailsWindow(Frame modalParent) { super(modalParent); + setFocusable(true); - popupMenuItems[0] = new JMenuItem("Neue Veranstaltung"); - popupMenuItems[1] = new JMenuItem("Löschen"); - + // ESC closes this window + addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { + dispose(); + } + } + }); // Close button closes window btnClose.addActionListener(new ActionListener() { @Override @@ -57,15 +64,17 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { dispose(); } }); - // ESC closes this window - addKeyListener(new KeyAdapter() { + + // nothing to save at first since nothing changed + btnSaveChanges.setEnabled(false); + btnSaveChanges.addActionListener(new ActionListener() { @Override - public void keyPressed(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { - dispose(); - } + public void actionPerformed(ActionEvent e) { + LOGGER.debug(("Speichern clicked")); + // TODO do save } }); + // Setup popup menu for the right panel final PopupMenu pop = new PopupMenu(new ActionListener() { public void actionPerformed(ActionEvent e) { if (e.getSource().equals(popupMenuItems[0])) { @@ -79,30 +88,29 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { } }); - // add our menu items to the popup menu + // our menu items + popupMenuItems[0] = new JMenuItem("Neue Veranstaltung"); + popupMenuItems[1] = new JMenuItem("Löschen"); + // add them to the popup menu pop.addMenuItem(popupMenuItems[0]); pop.addSeparator(); pop.addMenuItem(popupMenuItems[1]); + // mouse adapter to register clicks and react on the right panel final MouseAdapter ma = new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { processClick(e); } - @Override public void mouseReleased(MouseEvent e) { processClick(e); } - private void processClick(MouseEvent e) { int r = versionTable.rowAtPoint(e.getPoint()); - LOGGER.debug(e.getSource().getClass() + " @ " + r); if (r >= 0 && r < versionTable.getRowCount()) { + // highlight the row and popup the menu versionTable.setRowSelectionInterval(r, r); - ImageVersionDetails isr = versionTable.getSelectedItem(); - ImagePermissions userPermissions = image.getUserPermissions(); - // open popup if (e.isPopupTrigger()) { pop.show(e.getComponent(), e.getX(), e.getY()); } @@ -111,12 +119,13 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { } } }; - + // register mouse adapter for the right panel versionTableScrollPane.addMouseListener(ma); versionTable.addMouseListener(ma); - setFocusable(true); + } + /** * @param imageBaseId the id of the image to be displayed */ @@ -220,7 +229,6 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { btnIsTemplate.setEnabled(editable); cboOperatingSystem.setEnabled(editable); cboShareMode.setEnabled(editable); - btnSaveChanges.setEnabled(editable); } /** diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java index 9e5486ae..845bddcb 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java @@ -146,6 +146,7 @@ public abstract class ImageDetailsWindowLayout extends JDialog { add(infoPanel, BorderLayout.CENTER); // button panel on the bottom JPanel buttonPanel = new JPanel(); + buttonPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); btnSaveChanges = new JButton("Speichern"); btnClose = new JButton("Schließen"); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/permissions/ImagePerms.java b/dozentenmodul/src/main/java/org/openslx/dozmod/permissions/ImagePerms.java index 9633e13b..0f93ca9a 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/permissions/ImagePerms.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/permissions/ImagePerms.java @@ -1,6 +1,8 @@ package org.openslx.dozmod.permissions; +import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; +import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.dozmod.thrift.Session; /** @@ -8,13 +10,23 @@ import org.openslx.dozmod.thrift.Session; */ public class ImagePerms { - public static boolean canEdit(ImageDetailsRead image){ + private final static Logger LOGGER = Logger.getLogger(ImagePerms.class); + + public static boolean canEdit(final ImageDetailsRead image){ + // check if we are the owner of the image if(image.getOwnerId().equals(Session.getUserId())) return true; - if(image.userPermissions !=null) { - return image.userPermissions.edit; + // we are not, lets see which permissions we have + ImagePermissions perms = image.getUserPermissions(); + if(perms != null) { + LOGGER.debug("You can: " + perms); + } else { + // no user specific permissions, check defaults + perms = image.getDefaultPermissions(); + if (perms != null) { + LOGGER.debug("Everybody can: " + perms); + } } - return image.defaultPermissions.edit; + return perms != null && (perms.isSetAdmin() || perms.isSetEdit()); } - } |