diff options
author | Jonathan Bauer | 2015-08-05 15:59:03 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-05 15:59:03 +0200 |
commit | 6b6985ee3cfbdb2d93032a078a2986de90362bf3 (patch) | |
tree | 915b425e08b0a87332d610e22828b90f1592a528 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java | |
parent | [client] pointed to a small bug in wizard (diff) | |
download | tutor-module-6b6985ee3cfbdb2d93032a078a2986de90362bf3.tar.gz tutor-module-6b6985ee3cfbdb2d93032a078a2986de90362bf3.tar.xz tutor-module-6b6985ee3cfbdb2d93032a078a2986de90362bf3.zip |
[client] first draft at UserListWindow
Used a one-column table since we already have a lot to get from our ListTable.
Currently used a double-click control scheme, to be discussed...
TODO: filtering users and in general a way to query the existing users without UserCache.getAll()
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java | 64 |
1 files changed, 43 insertions, 21 deletions
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 f7c7f270..106a7299 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 @@ -4,23 +4,30 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; + +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.layout.UserListWindowLayout.UserAddedCallback; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.ImageCustomPermissionPageLayout; import org.openslx.dozmod.state.UploadWizardState; -import org.openslx.dozmod.thrift.UserCache; @SuppressWarnings("serial") 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 = null; + + private ArrayList<UserImagePermissions> permissionList = new ArrayList<>(); /** * wizard page for setting custom permissions @@ -36,36 +43,51 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { addUser.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - LOGGER.debug("addUser clicked"); // TODO + // 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) { + + // looks if we have this user already + Iterator<UserImagePermissions> it = permissionList.iterator(); + while (it.hasNext()) { + UserImagePermissions current = it.next(); + if (current.userId == newUser.userId) { + // user already in the list, skip it + 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 = state.permissions; + } + permissionList.add(new UserImagePermissions(newUser.userId, newUserPerms)); + LOGGER.debug("User added: " + newUser); + permissionTable.setData(permissionList, false); + } + }); } }); // delete user button adapter removeUser.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { - LOGGER.debug("removeUser clicked"); // TODO + 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() { - // setup permission list for the table - permissionList = new ArrayList<>(); - // TODO do not do this for all users :) - for (UserInfo user : UserCache.getAll()) { - LOGGER.debug(user); - // check if we have a default permission - if (state.permissions != null) { - LOGGER.debug("adding"); - permissionList.add(new UserImagePermissions(user.getUserId(), state.permissions)); - } else - LOGGER.debug("skip"); - } - permissionTable.setData(permissionList, true); - - } - @Override protected void onPageLeave() { LOGGER.debug("Saving permissions to state ..."); // save the table stuff to our upload wizard state |