summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/util')
-rw-r--r--src/jrummikub/util/Event2.java23
-rw-r--r--src/jrummikub/util/IEvent2.java6
-rw-r--r--src/jrummikub/util/IListener2.java5
3 files changed, 34 insertions, 0 deletions
diff --git a/src/jrummikub/util/Event2.java b/src/jrummikub/util/Event2.java
new file mode 100644
index 0000000..19d2d58
--- /dev/null
+++ b/src/jrummikub/util/Event2.java
@@ -0,0 +1,23 @@
+package jrummikub.util;
+
+import java.util.HashSet;
+
+public class Event2<T1, T2> implements IEvent2<T1, T2> {
+private HashSet<IListener2<T1, T2>> listeners = new HashSet<IListener2<T1, T2>>();
+
+ @Override
+ public void add(IListener2<T1, T2> listener) {
+ listeners.add(listener);
+ }
+
+ @Override
+ public void remove(IListener2<T1, T2> listener) {
+ listeners.remove(listener);
+ }
+
+ public void fire(T1 value1, T2 value2) {
+ for (IListener2<T1, T2> listener : listeners) {
+ listener.fire(value1, value2);
+ }
+ }
+}
diff --git a/src/jrummikub/util/IEvent2.java b/src/jrummikub/util/IEvent2.java
new file mode 100644
index 0000000..f677a2d
--- /dev/null
+++ b/src/jrummikub/util/IEvent2.java
@@ -0,0 +1,6 @@
+package jrummikub.util;
+
+public interface IEvent2<T1, T2> {
+ public void add(IListener2<T1, T2> listener);
+ public void remove(IListener2<T1, T2> listener);
+}
diff --git a/src/jrummikub/util/IListener2.java b/src/jrummikub/util/IListener2.java
new file mode 100644
index 0000000..b1832c1
--- /dev/null
+++ b/src/jrummikub/util/IListener2.java
@@ -0,0 +1,5 @@
+package jrummikub.util;
+
+public interface IListener2<T1, T2> {
+ public void fire(T1 value1, T2 value2);
+}