diff options
author | Stephan Schwaer | 2015-09-03 15:45:58 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-09-03 15:45:58 +0200 |
commit | d7d9407791e54b8a06d0c4297dd6f0e6d096543d (patch) | |
tree | f9d23b1937f6bb1f9fd00ad4f993c64180a76b04 /dozentenmodul | |
parent | [server] Update usage stats of lectures (diff) | |
download | tutor-module-d7d9407791e54b8a06d0c4297dd6f0e6d096543d.tar.gz tutor-module-d7d9407791e54b8a06d0c4297dd6f0e6d096543d.tar.xz tutor-module-d7d9407791e54b8a06d0c4297dd6f0e6d096543d.zip |
[client] Don't show owner in userList when changing owner or adding user for permission. Refresh and show lecture list after lecture creation.
Diffstat (limited to 'dozentenmodul')
11 files changed, 59 insertions, 33 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 ae77394c..4a78a4d1 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 @@ -36,6 +36,8 @@ public class ImageCustomPermissionManager extends JPanel { protected JButton btnRemoveUser; private ImageCustomPermissionManager me; + + private String ownerId; private ArrayList<UserImagePermissions> permissionList = new ArrayList<UserImagePermissions>(); private Map<String, ImagePermissions> newPermissionMap; @@ -91,7 +93,7 @@ public class ImageCustomPermissionManager extends JPanel { LOGGER.debug("User added: " + newUser); permissionTable.setData(permissionList, false); } - }, "Hinzufügen"); + }, "Hinzufügen", ownerId); } }); @@ -114,8 +116,10 @@ public class ImageCustomPermissionManager extends JPanel { * 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 + * @param ownerId The user to exclude from the add user list. Can be null. */ - public void initPanel(Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions){ + public void initPanel(Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions, String ownerId){ + this.ownerId = ownerId; this.newPermissionMap = permissionMap == null ? new HashMap<String, ImagePermissions>() : permissionMap; permissionList.clear(); this.defaultPermissions = defaultPermissions; 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 1d566ff6..53d84264 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 @@ -28,6 +28,7 @@ import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; /** * Panel including LecturePermissionTable and add/remove buttons for setting customLecturePermissions. */ +@SuppressWarnings("serial") public class LectureCustomPermissionManager extends JPanel{ /** @@ -44,6 +45,8 @@ public class LectureCustomPermissionManager extends JPanel{ private Map<String, LecturePermissions> newPermissionMap; private LecturePermissions defaultPermissions; + + private String ownerId = null; private static final Logger LOGGER = Logger.getLogger(LectureCustomPermissionManager.class); @@ -97,7 +100,7 @@ public class LectureCustomPermissionManager extends JPanel{ LOGGER.debug("User added: " + newUser); permissionTable.setData(permissionList, false); } - }, "Hinzufügen"); + }, "Hinzufügen", ownerId); } }); @@ -120,8 +123,10 @@ public class LectureCustomPermissionManager extends JPanel{ * 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 + * @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){ + public void initPanel(Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions, String ownerId){ + this.ownerId = ownerId; this.newPermissionMap = permissionMap == null ? new HashMap<String, LecturePermissions>() : permissionMap; permissionList.clear(); this.defaultPermissions = defaultPermissions; @@ -148,4 +153,5 @@ public class LectureCustomPermissionManager extends JPanel{ } 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 3fce3d6b..a91287fa 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 @@ -21,9 +21,9 @@ public class ImageCustomPermissionWindow extends ImageCustomPermissionWindowLayo private boolean okUsed = false; - protected ImageCustomPermissionWindow(final Window modalParent, final Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions) { + protected ImageCustomPermissionWindow(final Window modalParent, final Map<String, ImagePermissions> permissionMap, final ImagePermissions defaultPermissions, String ownerId) { super(modalParent); - imagePermissionManager.initPanel(permissionMap, defaultPermissions); + imagePermissionManager.initPanel(permissionMap, defaultPermissions, ownerId); btnOk.addActionListener(new ActionListener() { @Override @@ -65,10 +65,11 @@ public class ImageCustomPermissionWindow extends ImageCustomPermissionWindowLayo * @param modalParent parentwindow of this dialog * @param permissionMap The current user permissions with which the permission manager to initialise, null creates empty list. * @param defaultPermissions The current default permissions, should not be null! + * @param ownerId The id of the user to exclude when adding users. Can be null. * @return PermissionDefaultToCustomLink with resulting permissions or null, if abort has been used to exit the dialog */ - public static PermissionDefaultToCustomLink<ImagePermissions> open(Window modalParent, Map<String, ImagePermissions> permissionMap, ImagePermissions defaultPermissions) { - return new ImageCustomPermissionWindow(modalParent, permissionMap, defaultPermissions).runAndReturn(); + public static PermissionDefaultToCustomLink<ImagePermissions> open(Window modalParent, Map<String, ImagePermissions> permissionMap, ImagePermissions defaultPermissions, String ownerId) { + return new ImageCustomPermissionWindow(modalParent, permissionMap, defaultPermissions, ownerId).runAndReturn(); } 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 f716ce1b..1d5fe8a8 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 @@ -144,16 +144,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe @Override public void userAdded(UserInfo user, UserListWindow window) { window.dispose(); + if(Gui.showMessageBox(me, "Sind Sie sicher, dass sie die Besitzerrechte an " + + "einen anderen Account übertragen wollen?", MessageType.QUESTION_YESNO , LOGGER, null)) setImageOwner(user); } - }, "Besitzer festlegen"); + }, "Besitzer festlegen", image.ownerId); } }); btnPermissions.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { - PermissionDefaultToCustomLink<ImagePermissions> pl = ImageCustomPermissionWindow.open(me, me.permissionMap, image.defaultPermissions); + PermissionDefaultToCustomLink<ImagePermissions> pl = ImageCustomPermissionWindow.open(me, me.permissionMap, image.defaultPermissions, image.ownerId); if (pl != null && pl.defaultPermissions != null && pl.customPermissions != null){ image.defaultPermissions = pl.defaultPermissions; permissionMap = pl.customPermissions; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java index a95dd66c..a9848880 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java @@ -18,20 +18,20 @@ import org.openslx.dozmod.permissions.PermissionDefaultToCustomLink; public class LectureCustomPermissionWindow extends LectureCustomPermissionWindowLayout implements UiFeedback { private static final Logger LOGGER = Logger.getLogger(LectureCustomPermissionWindow.class); - + private boolean okUsed = false; /** * Don't use this constructor, use static function LectureCustomPermissionWindow.open instead. */ - protected LectureCustomPermissionWindow(final Window modalParent, final Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions) { + protected LectureCustomPermissionWindow(final Window modalParent, final Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions, String ownerId) { super(modalParent); /** * initialise the lecturePermissionManager */ - lecturePermissionManager.initPanel(permissionMap, defaultPermissions); - + lecturePermissionManager.initPanel(permissionMap, defaultPermissions, ownerId); + chkCustomPermAdmin.setSelected(defaultPermissions.admin); chkCustomPermEdit.setSelected(defaultPermissions.edit); @@ -74,12 +74,13 @@ public class LectureCustomPermissionWindow extends LectureCustomPermissionWindow * @param modalParent parentwindow of the popup window * @param permissionMap the permissions of the lecture * @param defaultPermissions default permissions of the lecture + * @param ownerId Id not to be shown in the list to add new users. Can be null. * @return PermissionDefaultToCustomLink with new permissions of null, if abort button has been used */ public static PermissionDefaultToCustomLink<LecturePermissions> open( - Window modalParent, Map<String, LecturePermissions> permissionMap, LecturePermissions defaultPermissions) { - return new LectureCustomPermissionWindow(modalParent, permissionMap, defaultPermissions).runAndReturn(); + Window modalParent, Map<String, LecturePermissions> permissionMap, LecturePermissions defaultPermissions, String ownerId) { + return new LectureCustomPermissionWindow(modalParent, permissionMap, defaultPermissions, ownerId).runAndReturn(); } @Override diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index 23dcac64..8c7b2b24 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -180,7 +180,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements window.dispose(); setLectureOwner(user); } - }, "Besitzer festlegen"); + }, "Besitzer festlegen", lecture.ownerId); } }); btnPermissions.addActionListener(new ActionListener() { @@ -189,7 +189,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements LOGGER.info(permissionMap); LOGGER.info(lecture.defaultPermissions); PermissionDefaultToCustomLink<LecturePermissions> pl = LectureCustomPermissionWindow.open( - me, permissionMap, lecture.defaultPermissions); + me, permissionMap, lecture.defaultPermissions, lecture.ownerId); if (pl != null && pl.defaultPermissions != null && pl.customPermissions != null) { lecture.defaultPermissions = pl.defaultPermissions; permissionMap = pl.customPermissions; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java index d4b11857..bdb16483 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java @@ -21,7 +21,6 @@ import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.layout.UserListWindowLayout; -import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; @@ -33,12 +32,14 @@ public class UserListWindow extends UserListWindowLayout implements UiFeedback { private final UserListWindow me = this; + private String ownerId = null; + public interface UserAddedCallback { public void userAdded(UserInfo user, UserListWindow window); } - public UserListWindow(final Window modalParent, final UserAddedCallback callback, String actionCaption) { - super(modalParent, actionCaption); + public UserListWindow(final Window modalParent, final UserAddedCallback callback, String buttonCaption) { + super(modalParent, buttonCaption); addWindowListener(new WindowAdapter() { @Override @@ -50,8 +51,9 @@ public class UserListWindow extends UserListWindowLayout implements UiFeedback { final List<UserInfo> cacheList = UserCache.getAll(); final List<UserInfo> userList = new ArrayList<>(cacheList.size() - 1); for (UserInfo user : cacheList) { - if (user.getUserId().equals(Session.getUserId())) + if (ownerId != null && user.getUserId().equals(ownerId)) continue; + userList.add(user); } Gui.asyncExec(new Runnable() { @@ -121,10 +123,21 @@ public class UserListWindow extends UserListWindowLayout implements UiFeedback { // this.setLocationRelativeTo(SwingUtilities.getWindowAncestor(modalParent)); } - public static void open(Window modalParent, UserAddedCallback callback, String actionCaption) { - new UserListWindow(modalParent, callback, actionCaption).setVisible(true); + /** + * Open a new UserListWindow + * + * @param modalParent + * @param callback + * @param buttonCaption + * @param ownerId The Id of the owner of an image or lecture. Should not be shown in the list. Can be null + */ + public static void open(Window modalParent, UserAddedCallback callback, String buttonCaption, String ownerId) { + UserListWindow win = new UserListWindow(modalParent, callback, buttonCaption); + win.ownerId = ownerId; + win.setVisible(true); } + @Override public boolean wantConfirmQuit() { return false; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java index 20864992..948a2476 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/UserListWindowLayout.java @@ -30,7 +30,7 @@ public class UserListWindowLayout extends JDialog { private static String title = "Benutzerliste"; - protected UserListWindowLayout(Window modalParent, String actionCaption) { + protected UserListWindowLayout(Window modalParent, String buttonCaption) { super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS); @@ -61,7 +61,7 @@ public class UserListWindowLayout extends JDialog { cancelButton = new JButton("Schließen"); buttonPane.add(cancelButton); buttonPane.add(Box.createRigidArea(new Dimension(10, 0))); - setButton = new JButton(actionCaption); + setButton = new JButton(buttonCaption); buttonPane.add(setButton); // --------------- end button panel ---------------------------------- diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java index fe8da98b..944e82f4 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java @@ -98,11 +98,10 @@ public class LectureWizard extends Wizard implements UiFeedback { return false; // all good, feedback - if (Gui.showMessageBox(this, "Veranstaltung erstellt! Wollen Sie zur Übersicht wechseln?", - MessageType.QUESTION_YESNO, null, null)) { - LectureCache.get(true); - MainWindow.showPage(LectureListWindow.class); - } + Gui.showMessageBox(this, "Veranstaltung erstellt!", MessageType.INFO, null, null); + LectureCache.get(true); + MainWindow.showPage(LectureListWindow.class); + return 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 f6cfe0b7..c0809aac 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 @@ -31,7 +31,7 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout { @Override protected void onPageEnter() { if(!initDone){ - imageCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions); + imageCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions, null); initDone = true; } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java index d99b0952..ffdaaea6 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java @@ -32,7 +32,7 @@ public class LectureCustomPermissionPage extends LectureCustomPermissionPageLayo @Override protected void onPageEnter() { if(!initDone){ - lectureCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions); + lectureCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions, null); initDone = true; } } |