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 | |
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
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()); } - } |