Created
January 22, 2014 12:21
-
-
Save TomasMikula/8557825 to your computer and use it in GitHub Desktop.
Helper classes for JavaFX to repeatedly register and unregister the same listener, while avoiding duplicate registration of the listener.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import javafx.beans.value.ChangeListener; | |
import javafx.beans.value.ObservableValue; | |
public final class ChangeSubscriber<T> { | |
private final ObservableValue<T> observable; | |
private final ChangeListener<T> listener; | |
private boolean isSubscribed; | |
public ChangeSubscriber(ObservableValue<T> observable, ChangeListener<T> listener) { | |
this.observable = observable; | |
this.listener = listener; | |
this.isSubscribed = false; | |
} | |
public void subscribe() { | |
if(!isSubscribed) { | |
isSubscribed = true; | |
observable.addListener(listener); | |
} | |
} | |
public void unsubscribe() { | |
if(isSubscribed) { | |
isSubscribed = false; | |
observable.removeListener(listener); | |
} | |
} | |
public boolean isSubscribed() { | |
return isSubscribed; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import javafx.beans.InvalidationListener; | |
import javafx.beans.Observable; | |
public final class InvalidationSubscriber { | |
private final Observable observable; | |
private final InvalidationListener listener; | |
private boolean isSubscribed; | |
public InvalidationSubscriber(Observable observable, InvalidationListener listener) { | |
this.observable = observable; | |
this.listener = listener; | |
this.isSubscribed = false; | |
} | |
public void subscribe() { | |
if(!isSubscribed) { | |
isSubscribed = true; | |
observable.addListener(listener); | |
} | |
} | |
public void unsubscribe() { | |
if(isSubscribed) { | |
isSubscribed = false; | |
observable.removeListener(listener); | |
} | |
} | |
public boolean isSubscribed() { | |
return isSubscribed; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment