diff options
author | Jonathan Bauer | 2016-03-15 14:08:22 +0100 |
---|---|---|
committer | Jonathan Bauer | 2016-03-15 14:08:22 +0100 |
commit | 400fc72fc9d606e56a1d20efba37514b556aed30 (patch) | |
tree | 6fc23ba996283b952c5170d5647396506c37a777 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java | |
parent | [client] fix '.part' not beeing removed from TransferPanel when the transfer ... (diff) | |
download | tutor-module-400fc72fc9d606e56a1d20efba37514b556aed30.tar.gz tutor-module-400fc72fc9d606e56a1d20efba37514b556aed30.tar.xz tutor-module-400fc72fc9d606e56a1d20efba37514b556aed30.zip |
[client] reworked lecture details window
now uses tabs for subsets of options - clearing up the gui a bit
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java | 49 |
1 files changed, 48 insertions, 1 deletions
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 2e02b683..d943d4c6 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 @@ -4,6 +4,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.util.ArrayList; +import java.util.EventListener; +import java.util.EventObject; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -18,13 +20,14 @@ import javax.swing.JPanel; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.UIManager; +import javax.swing.event.EventListenerList; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.LecturePermissions; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.gui.control.table.LecturePermissionTable; -import org.openslx.dozmod.gui.control.table.QScrollPane; import org.openslx.dozmod.gui.control.table.LecturePermissionTable.UserLecturePermissions; +import org.openslx.dozmod.gui.control.table.QScrollPane; import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.window.UserListWindow; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; @@ -33,6 +36,10 @@ import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; * Panel including LecturePermissionTable and add/remove buttons for setting * customLecturePermissions. */ +/** + * @author joe + * + */ @SuppressWarnings("serial") public class LectureCustomPermissionManager extends JPanel { @@ -101,6 +108,7 @@ public class LectureCustomPermissionManager extends JPanel { permissionList.add(new UserLecturePermissions(newUser.userId, new LecturePermissions( defaultPermissions))); permissionTable.setData(permissionList, false); + fireUserChangeEvent(new UserChangeEvent(new Object())); } }, "Hinzufügen", ownerId); } @@ -115,6 +123,7 @@ public class LectureCustomPermissionManager extends JPanel { LOGGER.debug("Could not remove: " + selected); } permissionTable.setData(permissionList, false); + fireUserChangeEvent(new UserChangeEvent(new Object())); } }); @@ -128,6 +137,9 @@ public class LectureCustomPermissionManager extends JPanel { } }); } + public LecturePermissionTable getTable() { + return permissionTable; + } /** * Initialise the PermissionManager @@ -180,4 +192,39 @@ public class LectureCustomPermissionManager extends JPanel { defaultPermissions.edit = edit; } + + /** + * Custom event mechanism to detect changes to the user list + * (Mostly needed for the reactToChange() stuff in LectureDetailsWindow) + */ + protected EventListenerList listenerList = new EventListenerList(); + + public class UserChangeEvent extends EventObject { + + public UserChangeEvent(Object source) { + super(source); + } + } + + public interface UserChangeEventListener extends EventListener { + public void stateChanged(UserChangeEvent event); + } + + public void addUserChangeEventListener(UserChangeEventListener listener) { + listenerList.add(UserChangeEventListener.class, listener); + } + + public void removeUserChangeEventListener(UserChangeEventListener listener) { + listenerList.remove(UserChangeEventListener.class, listener); + } + + void fireUserChangeEvent(UserChangeEvent evt) { + Object[] listeners = listenerList.getListenerList(); + for (int i = 0; i < listeners.length; i++) { + if (listeners[i] == UserChangeEventListener.class) { + ((UserChangeEventListener) listeners[i + 1]) + .stateChanged(evt); + } + } + } } |