All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.reactfx.inhibeans.property.FloatPropertyBase Maven / Gradle / Ivy

There is a newer version: 1.11
Show newest version
package org.reactfx.inhibeans.property;

import org.reactfx.Guard;

/**
 * Inhibitory version of {@link javafx.beans.property.DoublePropertyBase}.
 */
@Deprecated
public abstract class FloatPropertyBase
extends javafx.beans.property.FloatPropertyBase
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();
        }
    }


    /********************************
     *** Superclass constructors. ***
     ********************************/

    public FloatPropertyBase() {
        super();
    }

    public FloatPropertyBase(float initialValue) {
        super(initialValue);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy