diff --git a/src/jrummikub/util/Event.java b/src/jrummikub/util/Event.java index f76b861..491e10f 100644 --- a/src/jrummikub/util/Event.java +++ b/src/jrummikub/util/Event.java @@ -7,9 +7,15 @@ public class Event implements IEvent { private HashSet listeners = new HashSet(); @Override - public Connection add(IListener listener) { + public Connection add(final IListener listener) { listeners.add(listener); - return null; + return new Connection() { + + @Override + public void remove() { + Event.this.remove(listener); + } + }; } @Override diff --git a/src/jrummikub/util/Event1.java b/src/jrummikub/util/Event1.java index ff6c037..d721a7e 100644 --- a/src/jrummikub/util/Event1.java +++ b/src/jrummikub/util/Event1.java @@ -12,9 +12,15 @@ public class Event1 implements IEvent1 { private HashSet> listeners = new HashSet>(); @Override - public Connection add(IListener1 listener) { + public Connection add(final IListener1 listener) { listeners.add(listener); - return null; + return new Connection() { + + @Override + public void remove() { + Event1.this.remove(listener); + } + }; } @Override diff --git a/src/jrummikub/util/Event2.java b/src/jrummikub/util/Event2.java index 4b6575f..7087975 100644 --- a/src/jrummikub/util/Event2.java +++ b/src/jrummikub/util/Event2.java @@ -14,9 +14,15 @@ public class Event2 implements IEvent2 { private HashSet> listeners = new HashSet>(); @Override - public Connection add(IListener2 listener) { + public Connection add(final IListener2 listener) { listeners.add(listener); - return null; + return new Connection() { + + @Override + public void remove() { + Event2.this.remove(listener); + } + }; } @Override