summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java
diff options
context:
space:
mode:
authorJonathan Bauer2016-03-15 14:08:22 +0100
committerJonathan Bauer2016-03-15 14:08:22 +0100
commit400fc72fc9d606e56a1d20efba37514b556aed30 (patch)
tree6fc23ba996283b952c5170d5647396506c37a777 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java
parent[client] fix '.part' not beeing removed from TransferPanel when the transfer ... (diff)
downloadtutor-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.java49
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);
+ }
+ }
+ }
}