52 lines
1.3 KiB
Java
52 lines
1.3 KiB
Java
package com.imyeyu.fx;
|
|
|
|
import javafx.beans.binding.Bindings;
|
|
import javafx.beans.binding.BooleanBinding;
|
|
import javafx.beans.binding.StringBinding;
|
|
import javafx.beans.property.DoubleProperty;
|
|
import javafx.beans.value.ObservableValue;
|
|
import com.imyeyu.utils.Calc;
|
|
import javafx.scene.control.SplitPane;
|
|
|
|
import java.util.Arrays;
|
|
|
|
/**
|
|
* @author 夜雨
|
|
* @version 2024-04-13 13:46
|
|
*/
|
|
public final class BindingUtils {
|
|
|
|
/**
|
|
* 多个布尔值绑定属性与运算
|
|
*
|
|
* @param values 布尔值绑定
|
|
* @return 与运算绑定
|
|
*/
|
|
@SafeVarargs
|
|
public static BooleanBinding and(ObservableValue<Boolean>...values) {
|
|
return Bindings.createBooleanBinding(()-> Arrays.stream(values).allMatch(ObservableValue::getValue), values);
|
|
}
|
|
|
|
/**
|
|
* 多个布尔值绑定属性或运算
|
|
*
|
|
* @param values 布尔值绑定
|
|
* @return 或运算绑定
|
|
*/
|
|
@SafeVarargs
|
|
public static BooleanBinding or(ObservableValue<Boolean>...values) {
|
|
return Bindings.createBooleanBinding(()-> Arrays.stream(values).anyMatch(ObservableValue::getValue), values);
|
|
}
|
|
|
|
|
|
/**
|
|
* 双精度转整型字符串绑定属性
|
|
*
|
|
* @param property 双精度浮点型属性
|
|
* @return 字符串绑定属性
|
|
*/
|
|
public static StringBinding integerStringBinding(DoubleProperty property) {
|
|
return Bindings.createStringBinding(() -> String.valueOf(Calc.round(property.get())), property);
|
|
}
|
|
}
|