diff options
author | Simon Rettberg | 2018-06-26 14:53:55 +0200 |
---|---|---|
committer | Simon Rettberg | 2018-06-26 14:53:55 +0200 |
commit | 0eb8cdc9517c427d5b69587c86e6a3a2e3d1473e (patch) | |
tree | 1d259645660e6dd23b8dfd05ab019ee42a5afde8 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LecturePermissionConfigurator.java | |
parent | [client] Move ResourceLoader back to dozmod client (diff) | |
download | tutor-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.java | 51 |
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); - } - } - } } |