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/src | |
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/src')
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; } } |