summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org
diff options
context:
space:
mode:
authorStephan Schwaer2015-08-20 17:03:31 +0200
committerStephan Schwaer2015-08-20 17:03:31 +0200
commit48701db5b56db992cef422e01bc76aa8e95dcdf6 (patch)
tree02877d47add563c56d1a93c9fd5e466a9795986c /dozentenmodul/src/main/java/org
parentMerge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff)
downloadtutor-module-48701db5b56db992cef422e01bc76aa8e95dcdf6.tar.gz
tutor-module-48701db5b56db992cef422e01bc76aa8e95dcdf6.tar.xz
tutor-module-48701db5b56db992cef422e01bc76aa8e95dcdf6.zip
[client] Add ImageCustomPermissionManager and adjusted ImageCustomPermissionWindow and ImageCustomPermissionPage to it.
Diffstat (limited to 'dozentenmodul/src/main/java/org')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java124
-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/window/CustomImagePermissionWindow.java123
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java67
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java (renamed from dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/CustomImagePermissionWindowLayout.java)30
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java30
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java81
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java2
10 files changed, 252 insertions, 247 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
new file mode 100644
index 00000000..27a28f21
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java
@@ -0,0 +1,124 @@
+package org.openslx.dozmod.gui.control;
+
+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.JOptionPane;
+
+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.UserImagePermissions;
+import org.openslx.dozmod.gui.window.UserListWindow;
+import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
+
+
+/**
+ * Panel including ImagePermissionTable and add/remove buttons for setting customImagePermissions.
+ */
+public class ImageCustomPermissionManager extends ImageCustomPermissionManagerLayout {
+
+ private ImageCustomPermissionManager me;
+
+ private ArrayList<UserImagePermissions> permissionList;
+ private Map<String, ImagePermissions> newPermissionMap;
+
+ private ActionListener addButtonListener = null;
+ private ActionListener removeButtonListener = null;
+
+ private static final Logger LOGGER = Logger.getLogger(ImageCustomPermissionManager.class);
+
+
+ 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);
+
+ // 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() {
+ @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 (UserImagePermissions 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 UserImagePermissions(newUser.userId, new ImagePermissions(defaultPermissions)));
+ LOGGER.debug("User added: " + newUser);
+ permissionTable.setData(permissionList, false);
+ }
+ }, "Hinzufügen");
+ }
+ };
+ btnAddUser.addActionListener(addButtonListener);
+
+ // delete user button listener
+ removeButtonListener = new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ final UserImagePermissions selected = permissionTable.getSelectedItem();
+ LOGGER.debug("Removing: " + selected);
+ if (!permissionList.remove(selected)) {
+ LOGGER.debug("Could not remove: " + selected);
+ }
+ permissionTable.setData(permissionList, false);
+ }
+ };
+ btnRemoveUser.addActionListener(removeButtonListener);
+ }
+
+
+ /**
+ * 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> 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 (UserImagePermissions perm : permissionList) {
+ newPermissionMap.put(perm.userId, perm.permissions);
+ }
+ return newPermissionMap;
+ }
+
+}
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
new file mode 100644
index 00000000..5f07bd7b
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManagerLayout.java
@@ -0,0 +1,36 @@
+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/window/CustomImagePermissionWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/CustomImagePermissionWindow.java
deleted file mode 100644
index f096163f..00000000
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/CustomImagePermissionWindow.java
+++ /dev/null
@@ -1,123 +0,0 @@
-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.CustomImagePermissionWindowLayout;
-import org.openslx.dozmod.thrift.Session;
-import org.openslx.thrifthelper.ThriftManager;
-
-
-@SuppressWarnings("serial")
-public class CustomImagePermissionWindow extends CustomImagePermissionWindowLayout {
-
- private static final Logger LOGGER = Logger.getLogger(CustomImagePermissionWindow.class);
-
-
- private final CustomImagePermissionWindow me;
- private ArrayList<UserImagePermissions> permissionList = new ArrayList<>();
-
- protected CustomImagePermissionWindow(final Frame modalParent, final Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions, final String imageBaseId) {
- super(modalParent);
- me = this;
-
-
- for (Entry<String, ImagePermissions> e : permissionMap.entrySet()) {
- permissionList.add(new UserImagePermissions(e.getKey(), e.getValue()));
- }
-
- permissionTable.setData(permissionList, false);
-
- // add user button adapter
- btnAddUser.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) {
-
- // check if we have this user already
- for (UserImagePermissions 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 UserImagePermissions(newUser.userId, new ImagePermissions(defaultPermissions)));
- LOGGER.debug("User added: " + newUser);
- permissionTable.setData(permissionList, false);
- }
- }, "Hinzufügen");
- }
- });
- // delete user button adapter
- btnRemoveUser.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- final UserImagePermissions selected = permissionTable.getSelectedItem();
- LOGGER.debug("Removing: " + selected);
- if (!permissionList.remove(selected)) {
- LOGGER.debug("Could not remove: " + selected);
- }
- permissionTable.setData(permissionList, false);
- }
- });
-
- btnClose.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent arg0) {
- dispose();
- }
- });
-
- btnSave.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- // save the table stuff to our upload wizard state
- if (permissionList == null || permissionList.isEmpty())
- return;
-
- permissionMap.clear();
-
- // put permissions of the list into the map to upload
- for (UserImagePermissions perm : permissionList) {
- permissionMap.put(perm.userId, perm.permissions);
- }
-
- // TODO allow admin permission changes?
- // push permissions to satellite server
- try {
- ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(),
- imageBaseId, permissionMap);
- } catch (TException er) {
- Gui.showMessageBox(me, "Konnte Berechtigungen nicht an den Satelliten übertragen: ", MessageType.ERROR, LOGGER, er);
- }
- dispose();
- }
- });
-
- }
-
- public static void open(Frame modalParent, Map<String, ImagePermissions> permissionMap, ImagePermissions defaultPermissions, String imageBaseId) {
- new CustomImagePermissionWindow(modalParent, permissionMap, defaultPermissions, imageBaseId).setVisible(true);
- }
-}
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
new file mode 100644
index 00000000..5302bdba
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java
@@ -0,0 +1,67 @@
+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;
+
+
+@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
+ try {
+ ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(),
+ imageBaseId, imagePermissionManager.getMap());
+ } catch (TException er) {
+ Gui.showMessageBox(me, "Konnte Berechtigungen nicht an den Satelliten übertragen: ", MessageType.ERROR, LOGGER, er);
+ }
+ dispose();
+ }
+ });
+
+ btnClose.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ dispose();
+ }
+ });
+
+ }
+
+ public static void open(Frame modalParent, Map<String, ImagePermissions> permissionMap, ImagePermissions defaultPermissions, String imageBaseId) {
+ new ImageCustomPermissionWindow(modalParent, permissionMap, defaultPermissions, imageBaseId).setVisible(true);
+ }
+}
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 8a765daf..0f9e89cd 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
@@ -134,7 +134,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
@Override
public void actionPerformed(ActionEvent arg0) {
- CustomImagePermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, image.defaultPermissions, image.imageBaseId);
+ ImageCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, image.defaultPermissions, image.imageBaseId);
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/CustomImagePermissionWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java
index 8c48a8f1..a2c660be 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/CustomImagePermissionWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java
@@ -11,45 +11,31 @@ import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
-import javax.swing.JScrollPane;
import org.apache.log4j.Logger;
-import org.openslx.dozmod.gui.control.table.ImagePermissionTable;
+import org.openslx.dozmod.gui.control.ImageCustomPermissionManager;
@SuppressWarnings("serial")
-public class CustomImagePermissionWindowLayout extends JDialog {
+public class ImageCustomPermissionWindowLayout extends JDialog {
- private static final Logger LOGGER = Logger.getLogger(CustomImagePermissionWindowLayout.class);
+ private static final Logger LOGGER = Logger.getLogger(ImageCustomPermissionWindowLayout.class);
- protected final ImagePermissionTable permissionTable;
protected final JButton btnSave;
protected final JButton btnClose;
- protected final JButton btnAddUser;
- protected final JButton btnRemoveUser;
+ protected final ImageCustomPermissionManager imagePermissionManager;
- protected boolean imagePermPage;
private static String title = "Benutzerdefinierte Berechtigungen";
- protected CustomImagePermissionWindowLayout(Frame modalParent) {
+ protected ImageCustomPermissionWindowLayout(Frame modalParent) {
super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL
: ModalityType.MODELESS);
- JPanel tablePane = new JPanel();
- tablePane.setLayout(new BorderLayout());
- tablePane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
- permissionTable = new ImagePermissionTable();
- tablePane.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);
- tablePane.add(userButtonPane, BorderLayout.SOUTH);
-
+ imagePermissionManager = new ImageCustomPermissionManager();
+
// spaced buttons
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
@@ -62,7 +48,7 @@ public class CustomImagePermissionWindowLayout extends JDialog {
// pack it all
Container contentPane = getContentPane();
- contentPane.add(tablePane, BorderLayout.CENTER);
+ contentPane.add(imagePermissionManager, BorderLayout.CENTER);
contentPane.add(buttonPane, BorderLayout.PAGE_END);
setPreferredSize(new Dimension(480, 350));
pack();
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 73235920..75e8244a 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
@@ -69,11 +69,11 @@ public class ImageWizard extends Wizard implements UiFeedback {
}
// push permissions to satellite server
- if (uploadWizardState.permissionList != null) {
+ if (uploadWizardState.permissionMap != null) {
// user skipped permission list stuff
try {
ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(),
- uploadWizardState.uuid, uploadWizardState.permissionList);
+ uploadWizardState.uuid, uploadWizardState.permissionMap);
} catch (TException e) {
Gui.showMessageBox(this, "Could not write permissions list to satellite: ",
MessageType.ERROR, LOGGER, e);
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 969f61ae..7e32d35d 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
@@ -1,10 +1,6 @@
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.ImagePermissionTable;
+import org.openslx.dozmod.gui.control.ImageCustomPermissionManager;
import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.WizardPage;
@@ -12,15 +8,7 @@ import org.openslx.dozmod.gui.wizard.WizardPage;
@SuppressWarnings("serial")
public class ImageCustomPermissionPageLayout extends WizardPage {
- // The table stuff
- protected ImagePermissionTable permissionTable;
-
- // Buttons
- protected JButton addUser;
- protected JButton removeUser;
-
- protected String addUserLabel = "Benutzer hinzufügen";
- protected String removeUserLabel = "Benutzer entfernen";
+ protected ImageCustomPermissionManager imageCustomPermissionManager;
/**
* wizard page for setting custom permissions
@@ -32,18 +20,8 @@ public class ImageCustomPermissionPageLayout extends WizardPage {
setDescription("Setzen Sie hier spezielle Berechtigungen, sofern Sie dies wünschen.");
GridManager grid = new GridManager(this, 1, false);
- // table in the center
- permissionTable = new ImagePermissionTable();
- grid.add(new JScrollPane(permissionTable)).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);
+ 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/page/ImageCustomPermissionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java
index 858f49fc..dbabeb57 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
@@ -1,19 +1,9 @@
package org.openslx.dozmod.gui.wizard.page;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map.Entry;
-
-import javax.swing.JOptionPane;
+import java.util.Map;
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.UserImagePermissions;
-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.ImageCustomPermissionPageLayout;
import org.openslx.dozmod.state.UploadWizardState;
@@ -23,12 +13,8 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout {
private final static Logger LOGGER = Logger.getLogger(ImageCustomPermissionPage.class);
- private final ImageCustomPermissionPage me = this;
-
private UploadWizardState state = null;
- private ArrayList<UserImagePermissions> permissionList = new ArrayList<>();
-
/**
* wizard page for setting custom permissions
*
@@ -38,69 +24,20 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout {
super(wizard);
setPageComplete(true);
this.state = uploadWizardState;
-
- // add user button adapter
- 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) {
-
- // check if we have this user already
- for (UserImagePermissions current : permissionList) {
- if (current.userId.equals(newUser.userId)) {
- LOGGER.debug("User already present in the list, skipping!");
- return;
- }
- }
- // add it to the list with either default permissions if set, or none
- ImagePermissions newUserPerms = null;
- if (state.permissions == null) {
- newUserPerms = new ImagePermissions(false, false, false, false);
- } else {
- newUserPerms = new ImagePermissions(state.permissions);
- }
- permissionList.add(new UserImagePermissions(newUser.userId, newUserPerms));
- LOGGER.debug("User added: " + newUser);
- permissionTable.setData(permissionList, false);
- }
- }, "Hinzufügen");
- }
- });
- // delete user button adapter
- removeUser.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- final UserImagePermissions selected = permissionTable.getSelectedItem();
- LOGGER.debug("Removing: " + selected);
- if (!permissionList.remove(selected)) {
- LOGGER.debug("Could not remove: " + selected);
- }
- permissionTable.setData(permissionList, false);
- }
- });
}
@Override
+ protected void onPageEnter() {
+ imageCustomPermissionManager.initPanel(state.permissionMap, state.permissions);
+ }
+
+ @Override
protected void onPageLeave() {
LOGGER.debug("Saving permissions to state ...");
// save the table stuff to our upload wizard state
- if (permissionList == null || permissionList.isEmpty())
+ Map<String, ImagePermissions> newPermissionMap= imageCustomPermissionManager.getMap();
+ if (newPermissionMap == null || newPermissionMap.isEmpty())
return;
- // stuff in our list, clear old list in state before continuing
- if (state.permissionList == null) {
- state.permissionList = new HashMap<String, ImagePermissions>();
- } else {
- state.permissionList.clear();
- }
-
- // add them one by one
- for (UserImagePermissions perm : permissionList) {
- // for now just overwrite the saved permission list of the state
- state.permissionList.put(perm.userId, perm.permissions);
- }
+ state.permissionMap = newPermissionMap;
}
}
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 c3686c78..f087fd5f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
@@ -29,7 +29,7 @@ public class UploadWizardState {
// TODO: defaults per sat
public ImagePermissions permissions = null;
// explicit permissions per user as set by the creator
- public Map<String, ImagePermissions> permissionList = null;
+ public Map<String, ImagePermissions> permissionMap = null;
// local, publish, download frozen share mode
public ShareMode shareMode = null;
// enabled flag