Skip to content

Instantly share code, notes, and snippets.

@acmi
Created February 11, 2016 08:34
Show Gist options
  • Save acmi/9814eceb39289f281123 to your computer and use it in GitHub Desktop.
Save acmi/9814eceb39289f281123 to your computer and use it in GitHub Desktop.
simple Observable non thread safe implementation
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import java.util.HashSet;
import java.util.Set;
public abstract class ObservableBase implements Observable {
private Set<InvalidationListener> listeners = new HashSet<>(1);
@Override
public void addListener(InvalidationListener listener) {
listeners.add(listener);
}
@Override
public void removeListener(InvalidationListener listener) {
listeners.remove(listener);
}
protected void fireValueChangedEvent() {
for (InvalidationListener listener : listeners) {
try {
listener.invalidated(this);
} catch (Exception e) {
Thread.currentThread()
.getUncaughtExceptionHandler()
.uncaughtException(Thread.currentThread(), e);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment