v0.7.4b: refactored input event handling structure
This commit is contained in:
@@ -25,9 +25,7 @@ import java.util.LinkedList;
|
||||
|
||||
public class Signal<T> {
|
||||
|
||||
private LinkedList<Listener<T>> listeners = new LinkedList<Signal.Listener<T>>();
|
||||
|
||||
private boolean canceled;
|
||||
private LinkedList<Listener<T>> listeners = new LinkedList<>();
|
||||
|
||||
private boolean stackMode;
|
||||
|
||||
@@ -70,13 +68,11 @@ public class Signal<T> {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Listener<T>[] list = listeners.toArray( new Listener[0] );
|
||||
|
||||
canceled = false;
|
||||
|
||||
for (Listener<T> listener : list) {
|
||||
|
||||
if (listeners.contains(listener)) {
|
||||
listener.onSignal(t);
|
||||
if (canceled) {
|
||||
if (listener.onSignal(t)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -84,11 +80,8 @@ public class Signal<T> {
|
||||
}
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
canceled = true;
|
||||
}
|
||||
|
||||
public static interface Listener<T> {
|
||||
public void onSignal( T t );
|
||||
public interface Listener<T> {
|
||||
//return true if the signal has been handled
|
||||
boolean onSignal( T t );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user