summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java
diff options
context:
space:
mode:
authorSimon Rettberg2018-06-26 14:53:55 +0200
committerSimon Rettberg2018-06-26 14:53:55 +0200
commit0eb8cdc9517c427d5b69587c86e6a3a2e3d1473e (patch)
tree1d259645660e6dd23b8dfd05ab019ee42a5afde8 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java
parent[client] Move ResourceLoader back to dozmod client (diff)
downloadtutor-module-0eb8cdc9517c427d5b69587c86e6a3a2e3d1473e.tar.gz
tutor-module-0eb8cdc9517c427d5b69587c86e6a3a2e3d1473e.tar.xz
tutor-module-0eb8cdc9517c427d5b69587c86e6a3a2e3d1473e.zip
[client] Clean up change monitors: Unify generic listener
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java51
1 files changed, 17 insertions, 34 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java
index 26052cf3..5e4c1649 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java
@@ -6,9 +6,8 @@ import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
-import java.util.EventListener;
-import java.util.EventObject;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -22,11 +21,12 @@ import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
-import javax.swing.event.EventListenerList;
+import javax.swing.event.ChangeListener;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.LecturePermissions;
import org.openslx.bwlp.thrift.iface.UserInfo;
+import org.openslx.dozmod.gui.changemonitor.GenericControlWindow;
import org.openslx.dozmod.gui.control.table.LecturePermissionTable;
import org.openslx.dozmod.gui.control.table.LecturePermissionTable.UserLecturePermissions;
import org.openslx.dozmod.gui.control.table.QScrollPane;
@@ -43,7 +43,7 @@ import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
*
*/
@SuppressWarnings("serial")
-public class LecturePermissionConfigurator extends JPanel {
+public class LecturePermissionConfigurator extends JPanel implements GenericControlWindow<Map<String, LecturePermissions>> {
/**
* Self reference
@@ -182,43 +182,26 @@ public class LecturePermissionConfigurator extends JPanel {
return newPermissionMap;
}
- /**
- * Custom event mechanism to detect changes to the user list
- * (Mostly needed for the reactToChange() stuff in LectureDetailsWindow)
- */
- protected EventListenerList listenerList = new EventListenerList();
-
- /**
- * Shared instance, since there is no data attached (yet)
+ /*
+ * For dialog change monitor
*/
- private static final UserChangeEvent CHANGE_EVENT = new UserChangeEvent();
- public static class UserChangeEvent extends EventObject {
-
- public UserChangeEvent() {
- super(new Object());
+ void fireUserChangeEvent() {
+ for (ChangeListener cl : listeners) {
+ cl.stateChanged(null);
}
}
- public interface UserChangeEventListener extends EventListener {
- public void stateChanged(UserChangeEvent event);
- }
-
- public void addUserChangeEventListener(UserChangeEventListener listener) {
- listenerList.add(UserChangeEventListener.class, listener);
+ @Override
+ public Map<String, LecturePermissions> getState() {
+ return getPermissions();
}
+
+ private final List<ChangeListener> listeners = new ArrayList<>(1);
- public void removeUserChangeEventListener(UserChangeEventListener listener) {
- listenerList.remove(UserChangeEventListener.class, listener);
+ @Override
+ public void addChangeListener(ChangeListener l) {
+ listeners.add(l);
}
- void fireUserChangeEvent() {
- Object[] listeners = listenerList.getListenerList();
- for (int i = 0; i < listeners.length; i++) {
- if (listeners[i] == UserChangeEventListener.class) {
- ((UserChangeEventListener) listeners[i + 1])
- .stateChanged(CHANGE_EVENT);
- }
- }
- }
}