![JAR search and dependency download from the Maven repository](/logo.png)
com.netopyr.reduxfx.component.ComponentBase Maven / Gradle / Ivy
package com.netopyr.reduxfx.component;
import com.netopyr.reduxfx.component.impl.ComponentDriver;
import com.netopyr.reduxfx.middleware.Middleware;
import com.netopyr.reduxfx.store.ReduxFXStore;
import com.netopyr.reduxfx.updater.Update;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.ReadOnlyIntegerProperty;
import javafx.beans.property.ReadOnlyObjectProperty;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.layout.Pane;
import java.util.function.BiFunction;
@SuppressWarnings("unused")
public class ComponentBase extends ReduxFXStore {
private final ComponentDriver componentDriver = new ComponentDriver();
@SafeVarargs
public ComponentBase(
Group component,
S initialState,
BiFunction> updater,
Middleware... middlewares
) {
super(initialState, updater, middlewares);
register(componentDriver);
}
@SafeVarargs
public ComponentBase(
Pane component,
S initialState,
BiFunction> updater,
Middleware... middlewares
) {
super(initialState, updater);
register(componentDriver);
}
public ReadOnlyIntegerProperty createReadOnlyIntegerProperty(Object bean, String name) {
return componentDriver.createReadOnlyIntegerProperty(bean, name);
}
public ReadOnlyObjectProperty createReadOnlyObjectProperty(Object bean, String name) {
return componentDriver.createReadOnlyObjectProperty(bean, name);
}
public ObjectProperty createObjectProperty(Object bean, String name, ChangeListener listener) {
return componentDriver.createObjectProperty(bean, name, listener);
}
public ObjectProperty> createEventHandlerProperty(Object bean, String name) {
return componentDriver.createEventHandlerProperty(bean, name);
}
@FunctionalInterface
public interface ChangeListener {
Object onChange(T oldValue, T newValue);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy