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

org.pcsoft.framework.jfex.commons.util.Properties Maven / Gradle / Ivy

The newest version!
package org.pcsoft.framework.jfex.commons.util;

import javafx.beans.Observable;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.Property;
import javafx.beans.property.StringProperty;
import org.pcsoft.framework.jfex.commons.property.ExtendedWrapperProperty;
import org.pcsoft.framework.jfex.commons.property.SimpleWrapperProperty;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;

public final class Properties {
    public static  ObjectProperty createProperty(Property property, Function convertTo, Function convertFrom) {
        return new SimpleWrapperProperty<>(property) {

            @Override
            protected Outer convertTo(Inner value) {
                return convertTo.apply(value);
            }

            @Override
            protected Inner convertFrom(Outer value) {
                return convertFrom.apply(value);
            }
        };
    }

    public static ObjectProperty createProperty(Supplier getter, Consumer setter, Observable... observables) {
        return new ExtendedWrapperProperty<>(observables) {
            @Override
            protected T getPseudoValue() {
                return getter.get();
            }

            @Override
            protected void setPseudoValue(T value) {
                setter.accept(value);
            }
        };
    }

    private Properties() {
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy