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

com.netopyr.reduxfx.vscenegraph.builders.GridPaneBuilder Maven / Gradle / Ivy

package com.netopyr.reduxfx.vscenegraph.builders;

import com.netopyr.reduxfx.vscenegraph.VNode;
import com.netopyr.reduxfx.vscenegraph.event.VEventHandler;
import com.netopyr.reduxfx.vscenegraph.event.VEventType;
import com.netopyr.reduxfx.vscenegraph.property.VProperty;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.RowConstraints;
import io.vavr.collection.Array;
import io.vavr.collection.Map;
import io.vavr.control.Option;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

@SuppressWarnings("unused")
public class GridPaneBuilder> extends PaneBuilder {

    private static final String HGAP = "hgap";
    private static final String VGAP = "vgap";
    private static final String COLUMN_CONSTRAINTS = "columnConstraints";
    private static final String ROW_CONSTRAINTS = "rowConstraints";

    public GridPaneBuilder(Class nodeClass,
                           Map> childrenMap,
                           Map> singleChildMap,
                           Map properties,
                           Map eventHandlers) {
        super(nodeClass, childrenMap, singleChildMap, properties, eventHandlers);
    }

    @SuppressWarnings("unchecked")
    @Override
    protected B create(
            Map> childrenMap,
            Map> singleChildMap,
            Map properties,
            Map eventHandlers) {
        return (B) new GridPaneBuilder<>(getNodeClass(), childrenMap, singleChildMap, properties, eventHandlers);
    }

    public B hgap(double value) {
        return property(HGAP, value);
    }

    public B vgap(double value) {
        return property(VGAP, value);
    }

    public B columnContraints(ColumnConstraints... values) {
        return property(COLUMN_CONSTRAINTS, values == null? Array.empty() : Array.of(values));
    }
    public B columnContraints(Iterable constraints) {
        return property(COLUMN_CONSTRAINTS, constraints == null? Array.empty() : Array.ofAll(constraints));
    }

    public B rowConstraints(RowConstraints... values) {
        return property(ROW_CONSTRAINTS, values == null? Array.empty() : Array.of(values));
    }
    public B rowConstraints(Iterable constraints) {
        return property(ROW_CONSTRAINTS, constraints == null? Array.empty() : Array.ofAll(constraints));
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
                .appendSuper(super.toString())
                .toString();
    }
}