org.reactfx.inhibeans.property.ReadOnlyBooleanPropertyBase Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of richtextfx Show documentation
Show all versions of richtextfx Show documentation
FX-Text-Area for formatted text and other special effects.
package org.reactfx.inhibeans.property;
import org.reactfx.Guard;
/**
* Inhibitory version of {@link javafx.beans.property.ReadOnlyBooleanPropertyBase}.
*/
@Deprecated
public abstract class ReadOnlyBooleanPropertyBase
extends javafx.beans.property.ReadOnlyBooleanPropertyBase
implements Property {
private int blocked = 0;
private boolean fireOnRelease = false;
@Override
public Guard block() {
++blocked;
return ((Guard) this::release).closeableOnce();
}
private void release() {
assert blocked > 0;
if(--blocked == 0 && fireOnRelease) {
fireOnRelease = false;
super.fireValueChangedEvent();
}
}
@Override
protected void fireValueChangedEvent() {
if(blocked > 0) {
fireOnRelease = true;
} else {
super.fireValueChangedEvent();
}
}
}