diff options
| author | Stephan Schwaer | 2015-08-20 17:03:31 +0200 |
|---|---|---|
| committer | Stephan Schwaer | 2015-08-20 17:03:31 +0200 |
| commit | 48701db5b56db992cef422e01bc76aa8e95dcdf6 (patch) | |
| tree | 02877d47add563c56d1a93c9fd5e466a9795986c /dozentenmodul/src | |
| parent | Merge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff) | |
| download | tutor-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')
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 |
