// @formatter:off
/*
* Unlicensed, generated by javafx.ftl
*/
package org.controlsfx.control;
/**
* {@link BreadCrumbBar}建構器。
*
* @author JarReflectionDataLoader-1.0.0
* @version controlsfx-8.40.12.jar
* @param <Z> 要建構的物件型態(需繼承{@link BreadCrumbBar})
* @param <B> 建構器本身的型態(需繼承{@link BreadCrumbBarMaker})
*/
@javax.annotation.Generated("Generated by javafx.ftl")
@SuppressWarnings("all")
public class BreadCrumbBarMaker<T extends java.lang.Object, Z extends BreadCrumbBar<T>, B extends BreadCrumbBarMaker<T, Z, B>>
extends javafx.scene.control.ControlMaker<Z, B>
implements BreadCrumbBarMakerExt<T, Z, B>
{
private boolean hasAutoNavigationEnabled;
private boolean valAutoNavigationEnabled;
private boolean hasCrumbFactory;
private javafx.util.Callback<javafx.scene.control.TreeItem<T>, javafx.scene.control.Button> valCrumbFactory;
private boolean hasOnCrumbAction;
private javafx.event.EventHandler<org.controlsfx.control.BreadCrumbBar.BreadCrumbActionEvent<T>> valOnCrumbAction;
private boolean hasSelectedCrumb;
private javafx.scene.control.TreeItem<T> valSelectedCrumb;
private boolean bound1AutoNavigationEnabled;
private boolean bound2AutoNavigationEnabled;
private javafx.beans.value.ObservableValue<? extends Boolean> obsrv1AutoNavigationEnabled;
private javafx.beans.property.Property<Boolean> obsrv2AutoNavigationEnabled;
private boolean bound1CrumbFactory;
private boolean bound2CrumbFactory;
private javafx.beans.value.ObservableValue<? extends javafx.util.Callback<javafx.scene.control.TreeItem<T>, javafx.scene.control.Button>> obsrv1CrumbFactory;
private javafx.beans.property.Property<javafx.util.Callback<javafx.scene.control.TreeItem<T>, javafx.scene.control.Button>> obsrv2CrumbFactory;
private boolean bound1OnCrumbAction;
private boolean bound2OnCrumbAction;
private javafx.beans.value.ObservableValue<? extends javafx.event.EventHandler<org.controlsfx.control.BreadCrumbBar.BreadCrumbActionEvent<T>>> obsrv1OnCrumbAction;
private javafx.beans.property.Property<javafx.event.EventHandler<org.controlsfx.control.BreadCrumbBar.BreadCrumbActionEvent<T>>> obsrv2OnCrumbAction;
private boolean bound1SelectedCrumb;
private boolean bound2SelectedCrumb;
private javafx.beans.value.ObservableValue<? extends javafx.scene.control.TreeItem<T>> obsrv1SelectedCrumb;
private javafx.beans.property.Property<javafx.scene.control.TreeItem<T>> obsrv2SelectedCrumb;
@Override
public void applyTo(Z instance)
{
super.applyTo(instance);
if (this.hasAutoNavigationEnabled)
instance.setAutoNavigationEnabled(this.valAutoNavigationEnabled);
if (this.hasCrumbFactory)
instance.setCrumbFactory(this.valCrumbFactory);
if (this.hasOnCrumbAction)
instance.setOnCrumbAction(this.valOnCrumbAction);
if (this.hasSelectedCrumb)
instance.setSelectedCrumb(this.valSelectedCrumb);
if (this.bound1AutoNavigationEnabled)
instance.autoNavigationEnabledProperty().bind(this.obsrv1AutoNavigationEnabled);
if (this.bound2AutoNavigationEnabled)
instance.autoNavigationEnabledProperty().bindBidirectional(this.obsrv2AutoNavigationEnabled);
if (this.bound1CrumbFactory)
instance.crumbFactoryProperty().bind(this.obsrv1CrumbFactory);
if (this.bound2CrumbFactory)
instance.crumbFactoryProperty().bindBidirectional(this.obsrv2CrumbFactory);
if (this.bound1OnCrumbAction)
instance.onCrumbActionProperty().bind(this.obsrv1OnCrumbAction);
if (this.bound2OnCrumbAction)
instance.onCrumbActionProperty().bindBidirectional(this.obsrv2OnCrumbAction);
if (this.bound1SelectedCrumb)
instance.selectedCrumbProperty().bind(this.obsrv1SelectedCrumb);
if (this.bound2SelectedCrumb)
instance.selectedCrumbProperty().bindBidirectional(this.obsrv2SelectedCrumb);
}
/**
* 設定屬性{@link BreadCrumbBar#setAutoNavigationEnabled(boolean)}。
*
* @param value 新的屬性值
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public B autoNavigationEnabled(boolean value)
{
this.hasAutoNavigationEnabled = true;
this.valAutoNavigationEnabled = value;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#setCrumbFactory(javafx.util.Callback)}。
*
* @param value 新的屬性值
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public B crumbFactory(javafx.util.Callback<javafx.scene.control.TreeItem<T>, javafx.scene.control.Button> value)
{
this.hasCrumbFactory = true;
this.valCrumbFactory = value;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#setOnCrumbAction(javafx.event.EventHandler)}。
*
* @param value 新的屬性值
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public B onCrumbAction(javafx.event.EventHandler<org.controlsfx.control.BreadCrumbBar.BreadCrumbActionEvent<T>> value)
{
this.hasOnCrumbAction = true;
this.valOnCrumbAction = value;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#setSelectedCrumb(javafx.scene.control.TreeItem)}。
*
* @param value 新的屬性值
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public B selectedCrumb(javafx.scene.control.TreeItem<T> value)
{
this.hasSelectedCrumb = true;
this.valSelectedCrumb = value;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#autoNavigationEnabledProperty}的連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindAutoNavigationEnabled(javafx.beans.value.ObservableValue<? extends Boolean> source)
{
java.util.Objects.requireNonNull(source);
this.bound1AutoNavigationEnabled = true;
this.obsrv1AutoNavigationEnabled = source;
this.bound2AutoNavigationEnabled = false;
this.obsrv2AutoNavigationEnabled = null;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#autoNavigationEnabledProperty}的雙向連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindBidirectionalAutoNavigationEnabled(javafx.beans.property.Property<Boolean> source)
{
java.util.Objects.requireNonNull(source);
this.bound1AutoNavigationEnabled = false;
this.obsrv1AutoNavigationEnabled = null;
this.bound2AutoNavigationEnabled = true;
this.obsrv2AutoNavigationEnabled = source;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#crumbFactoryProperty}的連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindCrumbFactory(javafx.beans.value.ObservableValue<? extends javafx.util.Callback<javafx.scene.control.TreeItem<T>, javafx.scene.control.Button>> source)
{
java.util.Objects.requireNonNull(source);
this.bound1CrumbFactory = true;
this.obsrv1CrumbFactory = source;
this.bound2CrumbFactory = false;
this.obsrv2CrumbFactory = null;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#crumbFactoryProperty}的雙向連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindBidirectionalCrumbFactory(javafx.beans.property.Property<javafx.util.Callback<javafx.scene.control.TreeItem<T>, javafx.scene.control.Button>> source)
{
java.util.Objects.requireNonNull(source);
this.bound1CrumbFactory = false;
this.obsrv1CrumbFactory = null;
this.bound2CrumbFactory = true;
this.obsrv2CrumbFactory = source;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#onCrumbActionProperty}的連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindOnCrumbAction(javafx.beans.value.ObservableValue<? extends javafx.event.EventHandler<org.controlsfx.control.BreadCrumbBar.BreadCrumbActionEvent<T>>> source)
{
java.util.Objects.requireNonNull(source);
this.bound1OnCrumbAction = true;
this.obsrv1OnCrumbAction = source;
this.bound2OnCrumbAction = false;
this.obsrv2OnCrumbAction = null;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#onCrumbActionProperty}的雙向連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindBidirectionalOnCrumbAction(javafx.beans.property.Property<javafx.event.EventHandler<org.controlsfx.control.BreadCrumbBar.BreadCrumbActionEvent<T>>> source)
{
java.util.Objects.requireNonNull(source);
this.bound1OnCrumbAction = false;
this.obsrv1OnCrumbAction = null;
this.bound2OnCrumbAction = true;
this.obsrv2OnCrumbAction = source;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#selectedCrumbProperty}的連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindSelectedCrumb(javafx.beans.value.ObservableValue<? extends javafx.scene.control.TreeItem<T>> source)
{
java.util.Objects.requireNonNull(source);
this.bound1SelectedCrumb = true;
this.obsrv1SelectedCrumb = source;
this.bound2SelectedCrumb = false;
this.obsrv2SelectedCrumb = null;
return (B) this;
}
/**
* 設定屬性{@link BreadCrumbBar#selectedCrumbProperty}的雙向連結。
*
* @param value 新的屬性連結(單向)
* @return 目前的建構器(this)
*/
@SuppressWarnings("unchecked")
public final B bindBidirectionalSelectedCrumb(javafx.beans.property.Property<javafx.scene.control.TreeItem<T>> source)
{
java.util.Objects.requireNonNull(source);
this.bound1SelectedCrumb = false;
this.obsrv1SelectedCrumb = null;
this.bound2SelectedCrumb = true;
this.obsrv2SelectedCrumb = source;
return (B) this;
}
/**
* 建構{@link BreadCrumbBar}物件。
*
* @return 新的{@link BreadCrumbBar}物件實體
*/
@Override
@SuppressWarnings("unchecked")
public BreadCrumbBar<T> build()
{
BreadCrumbBar<T> instance = new BreadCrumbBar<T>();
this.applyTo((Z) instance);
this.doAfterBuild((Z) instance);
return instance;
}
/**
* 建構{@link BreadCrumbBar}物件。
*
* @return 新的{@link BreadCrumbBar}物件實體
*/
@SuppressWarnings("unchecked")
public BreadCrumbBar<T> build(javafx.scene.control.TreeItem<T> arg0)
{
BreadCrumbBar<T> instance = new BreadCrumbBar<T>(arg0);
this.applyTo((Z) instance);
this.doAfterBuild((Z) instance);
return instance;
}
}