summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
authorStephan Schwaer2015-08-20 17:55:57 +0200
committerStephan Schwaer2015-08-20 17:55:57 +0200
commit1b14253f1a6c2fb0cd4653c14da6ecd077aeed98 (patch)
tree453115fc4975931dbe1ade1de6b82649415fe290 /dozentenmodul/src/main/java
parent[client] save that one byte/int/bit :) (diff)
downloadtutor-module-1b14253f1a6c2fb0cd4653c14da6ecd077aeed98.tar.gz
tutor-module-1b14253f1a6c2fb0cd4653c14da6ecd077aeed98.tar.xz
tutor-module-1b14253f1a6c2fb0cd4653c14da6ecd077aeed98.zip
[client] added LectureCustomPermissionManager and merged ImagePermissionManager with it's layout.
Diffstat (limited to 'dozentenmodul/src/main/java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java77
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManagerLayout.java36
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java138
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java18
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java9
6 files changed, 196 insertions, 86 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 27a28f21..0c6d1837 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
@@ -1,5 +1,6 @@
package org.openslx.dozmod.gui.control;
+import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
@@ -7,11 +8,16 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.ImagePermissions;
import org.openslx.bwlp.thrift.iface.UserInfo;
+import org.openslx.dozmod.gui.control.table.ImagePermissionTable;
import org.openslx.dozmod.gui.control.table.ImagePermissionTable.UserImagePermissions;
import org.openslx.dozmod.gui.window.UserListWindow;
import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
@@ -20,15 +26,19 @@ import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
/**
* Panel including ImagePermissionTable and add/remove buttons for setting customImagePermissions.
*/
-public class ImageCustomPermissionManager extends ImageCustomPermissionManagerLayout {
+public class ImageCustomPermissionManager extends JPanel {
+protected ImagePermissionTable permissionTable;
+
+ protected JButton btnAddUser;
+ protected JButton btnRemoveUser;
+
private ImageCustomPermissionManager me;
- private ArrayList<UserImagePermissions> permissionList;
+ private ArrayList<UserImagePermissions> permissionList = new ArrayList<UserImagePermissions>();
private Map<String, ImagePermissions> newPermissionMap;
- private ActionListener addButtonListener = null;
- private ActionListener removeButtonListener = null;
+ private ImagePermissions defaultPermissions;
private static final Logger LOGGER = Logger.getLogger(ImageCustomPermissionManager.class);
@@ -36,31 +46,19 @@ public class ImageCustomPermissionManager extends ImageCustomPermissionManagerLa
public ImageCustomPermissionManager(){
super();
me = this;
- }
-
- /**
- * Initialise the PermissionManager
- * @param permissionMap the old permission, to initialise the table with, null creates empty table.
- * @param defaultPermissions the permissions for a newly added user
- */
- public void initPanel(Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions){
- this.newPermissionMap = permissionMap == null ? new HashMap<String, ImagePermissions>() : permissionMap;
- permissionList = new ArrayList<UserImagePermissions>();
-
- for (Entry<String, ImagePermissions> e : newPermissionMap.entrySet()) {
- permissionList.add(new UserImagePermissions(e.getKey(), e.getValue()));
- }
-
- permissionTable.setData(permissionList, false);
+ setLayout(new BorderLayout());
+ setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ permissionTable = new ImagePermissionTable();
+ add(new JScrollPane(permissionTable), BorderLayout.CENTER);
+ JPanel userButtonPane = new JPanel();
+ btnAddUser = new JButton("Benutzer hinzufügern");
+ userButtonPane.add(btnAddUser);
+ btnRemoveUser = new JButton("Benutzer entfernen");
+ userButtonPane.add(btnRemoveUser);
+ add(userButtonPane, BorderLayout.SOUTH);
- // clear listeners (multiple calls to init)
- if(addButtonListener != null)
- btnAddUser.removeActionListener(addButtonListener);
- if(removeButtonListener != null)
- btnRemoveUser.removeActionListener(removeButtonListener);
-
// add user button listener
- addButtonListener = new ActionListener() {
+ btnAddUser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO again: which frame to give? JOptionPane.getFrameForComponent(me) sounds cool at least :)
@@ -83,11 +81,10 @@ public class ImageCustomPermissionManager extends ImageCustomPermissionManagerLa
}
}, "Hinzufügen");
}
- };
- btnAddUser.addActionListener(addButtonListener);
+ });
// delete user button listener
- removeButtonListener = new ActionListener() {
+ btnRemoveUser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
@@ -98,8 +95,24 @@ public class ImageCustomPermissionManager extends ImageCustomPermissionManagerLa
}
permissionTable.setData(permissionList, false);
}
- };
- btnRemoveUser.addActionListener(removeButtonListener);
+ });
+ }
+
+ /**
+ * Initialise the PermissionManager
+ * @param permissionMap the old permission, to initialise the table with, null creates empty table.
+ * @param defaultPermissions the permissions for a newly added user
+ */
+ public void initPanel(Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions){
+ this.newPermissionMap = permissionMap == null ? new HashMap<String, ImagePermissions>() : permissionMap;
+ permissionList.clear();
+ this.defaultPermissions = defaultPermissions;
+
+ for (Entry<String, ImagePermissions> e : newPermissionMap.entrySet()) {
+ permissionList.add(new UserImagePermissions(e.getKey(), e.getValue()));
+ }
+
+ permissionTable.setData(permissionList, false);
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManagerLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManagerLayout.java
deleted file mode 100644
index 5f07bd7b..00000000
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManagerLayout.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.openslx.dozmod.gui.control;
-
-import java.awt.BorderLayout;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-
-import org.openslx.dozmod.gui.control.table.ImagePermissionTable;
-
-
-/**
- * Layout for the ImageCustomPermissionManager
- */
-public class ImageCustomPermissionManagerLayout extends JPanel {
-
- protected ImagePermissionTable permissionTable;
-
- protected JButton btnAddUser;
- protected JButton btnRemoveUser;
-
- public ImageCustomPermissionManagerLayout(){
- super();
- setLayout(new BorderLayout());
- setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
- permissionTable = new ImagePermissionTable();
- add(new JScrollPane(permissionTable), BorderLayout.CENTER);
- JPanel userButtonPane = new JPanel();
- btnAddUser = new JButton("Benutzer hinzufügern");
- userButtonPane.add(btnAddUser);
- btnRemoveUser = new JButton("Benutzer entfernen");
- userButtonPane.add(btnRemoveUser);
- add(userButtonPane, BorderLayout.SOUTH);
- }
-}
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
new file mode 100644
index 00000000..a105437d
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java
@@ -0,0 +1,138 @@
+package org.openslx.dozmod.gui.control;
+
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+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;
+import org.openslx.dozmod.gui.control.table.LecturePermissionTable.UserLecturePermissions;
+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.
+ */
+public class LectureCustomPermissionManager extends JPanel{
+
+ private LectureCustomPermissionManager me;
+
+ protected LecturePermissionTable permissionTable;
+
+ protected JButton btnAddUser;
+ protected JButton btnRemoveUser;
+
+ private ArrayList<UserLecturePermissions> permissionList = new ArrayList<UserLecturePermissions>();
+ private Map<String, LecturePermissions> newPermissionMap;
+
+ private LecturePermissions defaultPermissions;
+
+ private static final Logger LOGGER = Logger.getLogger(LectureCustomPermissionManager.class);
+
+
+ public LectureCustomPermissionManager(){
+ super();
+ me = this;
+
+ setLayout(new BorderLayout());
+ setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
+ permissionTable = new LecturePermissionTable();
+ add(new JScrollPane(permissionTable), BorderLayout.CENTER);
+ JPanel userButtonPane = new JPanel();
+ btnAddUser = new JButton("Benutzer hinzufügern");
+ userButtonPane.add(btnAddUser);
+ btnRemoveUser = new JButton("Benutzer entfernen");
+ userButtonPane.add(btnRemoveUser);
+ add(userButtonPane, BorderLayout.SOUTH);
+
+ // add user button listener
+ btnAddUser.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO again: which frame to give? JOptionPane.getFrameForComponent(me) sounds cool at least :)
+ UserListWindow.open(JOptionPane.getFrameForComponent(me), new UserAddedCallback() {
+
+ @Override
+ public void userAdded(final UserInfo newUser, UserListWindow window) {
+
+ // check if we have this user already
+ for (UserLecturePermissions current : permissionList) {
+ if (current.userId.equals(newUser.userId)) {
+ LOGGER.debug("User already present in the list, skipping!");
+ return;
+ }
+ }
+ // add it to the list with default permissions
+ permissionList.add(new UserLecturePermissions(newUser.userId, new LecturePermissions(defaultPermissions)));
+ LOGGER.debug("User added: " + newUser);
+ permissionTable.setData(permissionList, false);
+ }
+ }, "Hinzufügen");
+ }
+ });
+
+ // delete user button listener
+ btnRemoveUser.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ final UserLecturePermissions selected = permissionTable.getSelectedItem();
+ LOGGER.debug("Removing: " + selected);
+ if (!permissionList.remove(selected)) {
+ LOGGER.debug("Could not remove: " + selected);
+ }
+ permissionTable.setData(permissionList, false);
+ }
+ });
+ }
+
+ /**
+ * Initialise the PermissionManager
+ * @param permissionMap the old permission, to initialise the table with, null creates empty table.
+ * @param defaultPermissions the permissions for a newly added user
+ */
+ public void initPanel(Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions){
+ 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);
+ }
+
+
+ /**
+ * 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> getMap(){
+ // save the table stuff to our upload wizard state
+ if (permissionList == null)
+ return null;
+
+ newPermissionMap.clear();
+
+ // put permissions of the list into the map
+ for (UserLecturePermissions perm : permissionList) {
+ newPermissionMap.put(perm.userId, perm.permissions);
+ }
+ return newPermissionMap;
+ }
+
+}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java
index 5302bdba..deea0719 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java
@@ -3,42 +3,34 @@ package org.openslx.dozmod.gui.window;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.util.ArrayList;
import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.swing.JOptionPane;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.openslx.bwlp.thrift.iface.ImagePermissions;
-import org.openslx.bwlp.thrift.iface.UserInfo;
import org.openslx.dozmod.gui.Gui;
-import org.openslx.dozmod.gui.control.table.ImagePermissionTable.UserImagePermissions;
import org.openslx.dozmod.gui.helper.MessageType;
-import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
import org.openslx.dozmod.gui.window.layout.ImageCustomPermissionWindowLayout;
import org.openslx.dozmod.thrift.Session;
import org.openslx.thrifthelper.ThriftManager;
-
+/**
+ * Window for modifying the custom permissions of an image.
+ */
@SuppressWarnings("serial")
public class ImageCustomPermissionWindow extends ImageCustomPermissionWindowLayout {
private static final Logger LOGGER = Logger.getLogger(ImageCustomPermissionWindow.class);
-
private final ImageCustomPermissionWindow me;
protected ImageCustomPermissionWindow(final Frame modalParent, final Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions, final String imageBaseId) {
super(modalParent);
me = this;
-
imagePermissionManager.initPanel(permissionMap, defaultPermissions);
-
btnSave.addActionListener(new ActionListener() {
-
+
@Override
public void actionPerformed(ActionEvent e) {
// push permissions to satellite server
@@ -51,7 +43,7 @@ public class ImageCustomPermissionWindow extends ImageCustomPermissionWindowLayo
dispose();
}
});
-
+
btnClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java
index a2c660be..cf657c2e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java
@@ -25,8 +25,6 @@ public class ImageCustomPermissionWindowLayout extends JDialog {
protected final JButton btnSave;
protected final JButton btnClose;
protected final ImageCustomPermissionManager imagePermissionManager;
-
-
private static String title = "Benutzerdefinierte Berechtigungen";
@@ -35,7 +33,7 @@ public class ImageCustomPermissionWindowLayout extends JDialog {
: ModalityType.MODELESS);
imagePermissionManager = new ImageCustomPermissionManager();
-
+
// spaced buttons
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
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 dbabeb57..901309a1 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
@@ -13,6 +13,8 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout {
private final static Logger LOGGER = Logger.getLogger(ImageCustomPermissionPage.class);
+ private boolean initDone = false;
+
private UploadWizardState state = null;
/**
@@ -28,9 +30,12 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout {
@Override
protected void onPageEnter() {
- imageCustomPermissionManager.initPanel(state.permissionMap, state.permissions);
+ if(!initDone){
+ imageCustomPermissionManager.initPanel(state.permissionMap, state.permissions);
+ initDone = true;
+ }
}
-
+
@Override
protected void onPageLeave() {
LOGGER.debug("Saving permissions to state ...");