diff options
| author | Stephan Schwaer | 2015-10-08 16:07:40 +0200 |
|---|---|---|
| committer | Stephan Schwaer | 2015-10-08 16:07:40 +0200 |
| commit | 39b398471fa91c553e8e288d963f9744f2013cc1 (patch) | |
| tree | 48d5d18bbab863f88272fa4221342cc5a9762872 | |
| parent | [client] Added multi select, delete and del key to versionList in imageDetails. (diff) | |
| download | tutor-module-39b398471fa91c553e8e288d963f9744f2013cc1.tar.gz tutor-module-39b398471fa91c553e8e288d963f9744f2013cc1.tar.xz tutor-module-39b398471fa91c553e8e288d963f9744f2013cc1.zip | |
[client] Added delete keyboard shortcut in imagePermissionTables to remove users from the list.
3 files changed, 71 insertions, 35 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java index 070a2bad..aa09dc67 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java @@ -2,6 +2,7 @@ package org.openslx.dozmod.gui.control; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -9,12 +10,15 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import javax.swing.AbstractAction; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; +import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.UIManager; @@ -29,20 +33,20 @@ import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; - /** - * Panel including ImagePermissionTable and add/remove buttons for setting customImagePermissions. + * Panel including ImagePermissionTable and add/remove buttons for setting + * customImagePermissions. */ @SuppressWarnings("serial") public class ImageCustomPermissionManager extends JPanel { - protected ImagePermissionTable permissionTable; + protected ImagePermissionTable permissionTable; protected JButton btnAddUser; protected JButton btnRemoveUser; private ImageCustomPermissionManager me; - + private String ownerId; private ArrayList<UserImagePermissions> permissionList = new ArrayList<UserImagePermissions>(); @@ -94,7 +98,8 @@ public class ImageCustomPermissionManager extends JPanel { } } // add it to the list with default permissions - permissionList.add(new UserImagePermissions(newUser.userId, new ImagePermissions(defaultPermissions))); + permissionList.add(new UserImagePermissions(newUser.userId, new ImagePermissions( + defaultPermissions))); permissionTable.setData(permissionList, false); } }, "Hinzufügen", ownerId); @@ -112,19 +117,33 @@ public class ImageCustomPermissionManager extends JPanel { permissionTable.setData(permissionList, false); } }); + + // keyboard shortcut + permissionTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( + KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), "delete"); + permissionTable.getActionMap().put("delete", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent ae) { + btnRemoveUser.doClick(); + } + }); } /** - * Initialize the PermissionManager. Note that the given permissionMap and defaultPermissions reference + * Initialize the PermissionManager. Note that the given permissionMap and + * defaultPermissions reference * will get changed when the user interacts with the controls. - * - * @param permissionMap the old permission, to initialize the table with, null creates empty table. + * + * @param permissionMap the old permission, to initialize the table with, + * null creates empty table. * @param defaultPermissions the permissions for a newly added user * @param ownerId The user to exclude from the add user list. Can be null. */ - public void initPanel(Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions, String ownerId){ + public void initPanel(Map<String, ImagePermissions> permissionMap, + final ImagePermissions defaultPermissions, String ownerId) { this.ownerId = ownerId; - this.newPermissionMap = permissionMap == null ? new HashMap<String, ImagePermissions>() : permissionMap; + this.newPermissionMap = permissionMap == null ? new HashMap<String, ImagePermissions>() + : permissionMap; this.defaultPermissions = defaultPermissions; permissionList.clear(); @@ -146,12 +165,12 @@ public class ImageCustomPermissionManager extends JPanel { permissionTable.setData(permissionList, false); } - /** * Get map with the permissions set in the table of the manager. + * * @return Map with new custom permissions, null if something went wrong */ - public Map<String, ImagePermissions> updatePermissionReferences(){ + public Map<String, ImagePermissions> updatePermissionReferences() { if (permissionList == null) return null; @@ -163,15 +182,16 @@ public class ImageCustomPermissionManager extends JPanel { } return newPermissionMap; } - + /** * Update the used default permissions of the manager. + * * @param link * @param download * @param edit * @param admin */ - public void updateDefaultPermissions(boolean link, boolean download, boolean edit, boolean admin){ + public void updateDefaultPermissions(boolean link, boolean download, boolean edit, boolean admin) { this.defaultPermissions.link = link; this.defaultPermissions.download = download; this.defaultPermissions.edit = edit; 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 870db6ad..608b5e29 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 @@ -2,17 +2,21 @@ package org.openslx.dozmod.gui.control; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import javax.swing.AbstractAction; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; +import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.UIManager; @@ -25,40 +29,38 @@ import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.window.UserListWindow; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; - /** - * Panel including LecturePermissionTable and add/remove buttons for setting customLecturePermissions. + * Panel including LecturePermissionTable and add/remove buttons for setting + * customLecturePermissions. */ @SuppressWarnings("serial") -public class LectureCustomPermissionManager extends JPanel{ +public class LectureCustomPermissionManager extends JPanel { /** * Self reference */ private LectureCustomPermissionManager me; - protected LecturePermissionTable permissionTable; + protected LecturePermissionTable permissionTable; protected JButton btnAddUser; protected JButton btnRemoveUser; - private ArrayList<UserLecturePermissions> permissionList = new ArrayList<UserLecturePermissions>(); + private ArrayList<UserLecturePermissions> permissionList = new ArrayList<UserLecturePermissions>(); private Map<String, LecturePermissions> newPermissionMap; private LecturePermissions defaultPermissions; - + private String ownerId = null; private static final Logger LOGGER = Logger.getLogger(LectureCustomPermissionManager.class); - - public LectureCustomPermissionManager(){ + public LectureCustomPermissionManager() { super(); me = this; GridManager grid = new GridManager(this, 1); - permissionTable = new LecturePermissionTable(); // Panel for the add- and remove buttons @@ -70,7 +72,7 @@ public class LectureCustomPermissionManager extends JPanel{ userButtonPane.add(btnAddUser); btnRemoveUser = new JButton("Benutzer entfernen"); userButtonPane.add(btnRemoveUser); - userButtonPane.add(Box.createGlue()); + userButtonPane.add(Box.createGlue()); // Put everything into the grid JScrollPane jsp = new JScrollPane(permissionTable); @@ -81,7 +83,6 @@ public class LectureCustomPermissionManager extends JPanel{ grid.nextRow(); grid.finish(false); - // add user button listener btnAddUser.addActionListener(new ActionListener() { @Override @@ -97,7 +98,8 @@ public class LectureCustomPermissionManager extends JPanel{ } } // add it to the list with default permissions - permissionList.add(new UserLecturePermissions(newUser.userId, new LecturePermissions(defaultPermissions))); + permissionList.add(new UserLecturePermissions(newUser.userId, new LecturePermissions( + defaultPermissions))); permissionTable.setData(permissionList, false); } }, "Hinzufügen", ownerId); @@ -115,17 +117,31 @@ public class LectureCustomPermissionManager extends JPanel{ permissionTable.setData(permissionList, false); } }); + + // keyboard shortcut + permissionTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( + KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), "delete"); + permissionTable.getActionMap().put("delete", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent ae) { + btnRemoveUser.doClick(); + } + }); } /** * Initialise the PermissionManager - * @param permissionMap the old permission, to initialise the table with, null creates empty table. + * + * @param permissionMap the old permission, to initialise the table with, + * null creates empty table. * @param defaultPermissions the permissions for a newly added user * @param ownerId The user to exclude in the list do add user. May be null. */ - public void initPanel(Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions, String ownerId){ + public void initPanel(Map<String, LecturePermissions> permissionMap, + final LecturePermissions defaultPermissions, String ownerId) { this.ownerId = ownerId; - this.newPermissionMap = permissionMap == null ? new HashMap<String, LecturePermissions>() : permissionMap; + this.newPermissionMap = permissionMap == null ? new HashMap<String, LecturePermissions>() + : permissionMap; this.defaultPermissions = defaultPermissions; permissionList.clear(); @@ -135,12 +151,12 @@ public class LectureCustomPermissionManager extends JPanel{ permissionTable.setData(permissionList, false); } - /** * Get map with the permissions set in the table of the manager. + * * @return Map with new custom permissions, null if something went wrong */ - public Map<String, LecturePermissions> updatePermissionReferences(){ + public Map<String, LecturePermissions> updatePermissionReferences() { if (permissionList == null) return null; @@ -153,15 +169,15 @@ public class LectureCustomPermissionManager extends JPanel{ return newPermissionMap; } - /** * Update the default permissions used by the manager. + * * @param admin * @param edit */ - public void updateDefaultPermissions(boolean admin, boolean edit){ + public void updateDefaultPermissions(boolean admin, boolean edit) { defaultPermissions.admin = admin; defaultPermissions.edit = edit; } - + } 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 0262a914..5fd53022 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 @@ -230,7 +230,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe pop.addMenuItem(popupItemDelete); - // Some keyboard shortcuts + // keyboard shortcut versionTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), "delete"); versionTable.getActionMap().put("delete", new AbstractAction() { |
