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 | |
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')
3 files changed, 37 insertions, 73 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ImagePermissionConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ImagePermissionConfigurator.java index 2310f406..efba020c 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ImagePermissionConfigurator.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ImagePermissionConfigurator.java @@ -8,9 +8,8 @@ import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -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; @@ -24,11 +23,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.ImagePermissions; import org.openslx.bwlp.thrift.iface.UserInfo; +import org.openslx.dozmod.gui.changemonitor.GenericControlWindow; import org.openslx.dozmod.gui.control.table.ImagePermissionTable; import org.openslx.dozmod.gui.control.table.ImagePermissionTable.UserImagePermissions; import org.openslx.dozmod.gui.control.table.QScrollPane; @@ -43,7 +43,7 @@ import org.openslx.dozmod.util.FormatHelper; * customImagePermissions. */ @SuppressWarnings("serial") -public class ImagePermissionConfigurator extends JPanel { +public class ImagePermissionConfigurator extends JPanel implements GenericControlWindow<Map<String, ImagePermissions>> { protected ImagePermissionTable permissionTable; @@ -190,42 +190,27 @@ public class ImagePermissionConfigurator extends JPanel { } return newPermissionMap; } - - /** - * Custom event mechanism to detect changes to the user list + + /* + * For dialog change monitor */ - protected EventListenerList listenerList = new EventListenerList(); - /** - * Shared instance, since there is no data attached (yet) - */ - 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); + @Override + public Map<String, ImagePermissions> getState() { + return getPermissions(); } + + private final List<ChangeListener> listeners = new ArrayList<>(1); - public void addUserChangeEventListener(UserChangeEventListener listener) { - listenerList.add(UserChangeEventListener.class, listener); + @Override + public void addChangeListener(ChangeListener l) { + listeners.add(l); } - public void removeUserChangeEventListener(UserChangeEventListener listener) { - listenerList.remove(UserChangeEventListener.class, listener); - } - - 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); - } - } - } } 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); - } - } - } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java index e1c59863..5841efc5 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/NetrulesConfigurator.java @@ -1,7 +1,6 @@ package org.openslx.dozmod.gui.configurator; import java.awt.Color; -import java.awt.Container; import java.awt.Insets; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; @@ -10,8 +9,6 @@ import java.awt.event.KeyEvent; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; -import java.util.EventListener; -import java.util.EventObject; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -24,7 +21,6 @@ import javax.swing.JTextPane; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.event.ChangeListener; -import javax.swing.event.EventListenerList; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultStyledDocument; import javax.swing.text.SimpleAttributeSet; @@ -34,7 +30,7 @@ import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.NetDirection; import org.openslx.bwlp.thrift.iface.NetRule; import org.openslx.dozmod.gui.Gui; -import org.openslx.dozmod.gui.changemonitor.ListEditorWindow; +import org.openslx.dozmod.gui.changemonitor.GenericControlWindow; import org.openslx.dozmod.gui.control.WordWrapLabel; import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.helper.MessageType; @@ -44,7 +40,7 @@ import org.openslx.util.Util; /** * Widget for netrules configuration of lectures */ -public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements ListEditorWindow<NetRule> { +public class NetrulesConfigurator extends NetrulesConfiguratorLayout implements GenericControlWindow<List<NetRule>> { private static final long serialVersionUID = -3497629601818983994L; private final static Logger LOGGER = Logger.getLogger(NetrulesConfigurator.class); |