// @formatter:off /* * Unlicensed, generated by javafx.ftl */ package javafx.scene.chart; /** * {@link Axis}建構器。 * * @author JarReflectionDataLoader-1.0.0 * @version jfxrt.jar * @param <Z> 要建構的物件型態(需繼承{@link Axis}) * @param <B> 建構器本身的型態(需繼承{@link AxisMaker}) */ @javax.annotation.Generated("Generated by javafx.ftl") @SuppressWarnings("all") public class AxisMaker<T extends java.lang.Object, Z extends Axis<T>, B extends AxisMaker<T, Z, B>> extends javafx.scene.layout.RegionMaker<Z, B> implements AxisMakerExt<T, Z, B> { private boolean hasAnimated; private boolean valAnimated; private boolean hasAutoRanging; private boolean valAutoRanging; private boolean hasLabel; private java.lang.String valLabel; private boolean hasSide; private javafx.geometry.Side valSide; private boolean hasTickLabelFill; private javafx.scene.paint.Paint valTickLabelFill; private boolean hasTickLabelFont; private javafx.scene.text.Font valTickLabelFont; private boolean hasTickLabelGap; private double valTickLabelGap; private boolean hasTickLabelRotation; private double valTickLabelRotation; private boolean hasTickLabelsVisible; private boolean valTickLabelsVisible; private boolean hasTickLength; private double valTickLength; private boolean hasTickMarkVisible; private boolean valTickMarkVisible; private boolean hasTickMarks; private java.util.Collection<javafx.scene.chart.Axis.TickMark<T>> valTickMarks; private boolean bound1Animated; private boolean bound2Animated; private javafx.beans.value.ObservableValue<? extends Boolean> obsrv1Animated; private javafx.beans.property.Property<Boolean> obsrv2Animated; private boolean bound1AutoRanging; private boolean bound2AutoRanging; private javafx.beans.value.ObservableValue<? extends Boolean> obsrv1AutoRanging; private javafx.beans.property.Property<Boolean> obsrv2AutoRanging; private boolean bound1Label; private boolean bound2Label; private javafx.beans.value.ObservableValue<? extends java.lang.String> obsrv1Label; private javafx.beans.property.Property<java.lang.String> obsrv2Label; private boolean bound1Side; private boolean bound2Side; private javafx.beans.value.ObservableValue<? extends javafx.geometry.Side> obsrv1Side; private javafx.beans.property.Property<javafx.geometry.Side> obsrv2Side; private boolean bound1TickLabelFill; private boolean bound2TickLabelFill; private javafx.beans.value.ObservableValue<? extends javafx.scene.paint.Paint> obsrv1TickLabelFill; private javafx.beans.property.Property<javafx.scene.paint.Paint> obsrv2TickLabelFill; private boolean bound1TickLabelFont; private boolean bound2TickLabelFont; private javafx.beans.value.ObservableValue<? extends javafx.scene.text.Font> obsrv1TickLabelFont; private javafx.beans.property.Property<javafx.scene.text.Font> obsrv2TickLabelFont; private boolean bound1TickLabelGap; private boolean bound2TickLabelGap; private javafx.beans.value.ObservableValue<? extends Number> obsrv1TickLabelGap; private javafx.beans.property.Property<Number> obsrv2TickLabelGap; private boolean bound1TickLabelRotation; private boolean bound2TickLabelRotation; private javafx.beans.value.ObservableValue<? extends Number> obsrv1TickLabelRotation; private javafx.beans.property.Property<Number> obsrv2TickLabelRotation; private boolean bound1TickLabelsVisible; private boolean bound2TickLabelsVisible; private javafx.beans.value.ObservableValue<? extends Boolean> obsrv1TickLabelsVisible; private javafx.beans.property.Property<Boolean> obsrv2TickLabelsVisible; private boolean bound1TickLength; private boolean bound2TickLength; private javafx.beans.value.ObservableValue<? extends Number> obsrv1TickLength; private javafx.beans.property.Property<Number> obsrv2TickLength; private boolean bound1TickMarkVisible; private boolean bound2TickMarkVisible; private javafx.beans.value.ObservableValue<? extends Boolean> obsrv1TickMarkVisible; private javafx.beans.property.Property<Boolean> obsrv2TickMarkVisible; @Override public void applyTo(Z instance) { super.applyTo(instance); if (this.hasAnimated) instance.setAnimated(this.valAnimated); if (this.hasAutoRanging) instance.setAutoRanging(this.valAutoRanging); if (this.hasLabel) instance.setLabel(this.valLabel); if (this.hasSide) instance.setSide(this.valSide); if (this.hasTickLabelFill) instance.setTickLabelFill(this.valTickLabelFill); if (this.hasTickLabelFont) instance.setTickLabelFont(this.valTickLabelFont); if (this.hasTickLabelGap) instance.setTickLabelGap(this.valTickLabelGap); if (this.hasTickLabelRotation) instance.setTickLabelRotation(this.valTickLabelRotation); if (this.hasTickLabelsVisible) instance.setTickLabelsVisible(this.valTickLabelsVisible); if (this.hasTickLength) instance.setTickLength(this.valTickLength); if (this.hasTickMarkVisible) instance.setTickMarkVisible(this.valTickMarkVisible); if (this.hasTickMarks) instance.getTickMarks().addAll(this.valTickMarks); if (this.bound1Animated) instance.animatedProperty().bind(this.obsrv1Animated); if (this.bound2Animated) instance.animatedProperty().bindBidirectional(this.obsrv2Animated); if (this.bound1AutoRanging) instance.autoRangingProperty().bind(this.obsrv1AutoRanging); if (this.bound2AutoRanging) instance.autoRangingProperty().bindBidirectional(this.obsrv2AutoRanging); if (this.bound1Label) instance.labelProperty().bind(this.obsrv1Label); if (this.bound2Label) instance.labelProperty().bindBidirectional(this.obsrv2Label); if (this.bound1Side) instance.sideProperty().bind(this.obsrv1Side); if (this.bound2Side) instance.sideProperty().bindBidirectional(this.obsrv2Side); if (this.bound1TickLabelFill) instance.tickLabelFillProperty().bind(this.obsrv1TickLabelFill); if (this.bound2TickLabelFill) instance.tickLabelFillProperty().bindBidirectional(this.obsrv2TickLabelFill); if (this.bound1TickLabelFont) instance.tickLabelFontProperty().bind(this.obsrv1TickLabelFont); if (this.bound2TickLabelFont) instance.tickLabelFontProperty().bindBidirectional(this.obsrv2TickLabelFont); if (this.bound1TickLabelGap) instance.tickLabelGapProperty().bind(this.obsrv1TickLabelGap); if (this.bound2TickLabelGap) instance.tickLabelGapProperty().bindBidirectional(this.obsrv2TickLabelGap); if (this.bound1TickLabelRotation) instance.tickLabelRotationProperty().bind(this.obsrv1TickLabelRotation); if (this.bound2TickLabelRotation) instance.tickLabelRotationProperty().bindBidirectional(this.obsrv2TickLabelRotation); if (this.bound1TickLabelsVisible) instance.tickLabelsVisibleProperty().bind(this.obsrv1TickLabelsVisible); if (this.bound2TickLabelsVisible) instance.tickLabelsVisibleProperty().bindBidirectional(this.obsrv2TickLabelsVisible); if (this.bound1TickLength) instance.tickLengthProperty().bind(this.obsrv1TickLength); if (this.bound2TickLength) instance.tickLengthProperty().bindBidirectional(this.obsrv2TickLength); if (this.bound1TickMarkVisible) instance.tickMarkVisibleProperty().bind(this.obsrv1TickMarkVisible); if (this.bound2TickMarkVisible) instance.tickMarkVisibleProperty().bindBidirectional(this.obsrv2TickMarkVisible); } /** * 設定屬性{@link Axis#setAnimated(boolean)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B animated(boolean value) { this.hasAnimated = true; this.valAnimated = value; return (B) this; } /** * 設定屬性{@link Axis#setAutoRanging(boolean)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B autoRanging(boolean value) { this.hasAutoRanging = true; this.valAutoRanging = value; return (B) this; } /** * 設定屬性{@link Axis#setLabel(java.lang.String)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B label(java.lang.String value) { this.hasLabel = true; this.valLabel = value; return (B) this; } /** * 設定屬性{@link Axis#setSide(javafx.geometry.Side)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B side(javafx.geometry.Side value) { this.hasSide = true; this.valSide = value; return (B) this; } /** * 設定屬性{@link Axis#setTickLabelFill(javafx.scene.paint.Paint)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B tickLabelFill(javafx.scene.paint.Paint value) { this.hasTickLabelFill = true; this.valTickLabelFill = value; return (B) this; } /** * 設定屬性{@link Axis#setTickLabelFont(javafx.scene.text.Font)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B tickLabelFont(javafx.scene.text.Font value) { this.hasTickLabelFont = true; this.valTickLabelFont = value; return (B) this; } /** * 設定屬性{@link Axis#setTickLabelGap(double)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B tickLabelGap(double value) { this.hasTickLabelGap = true; this.valTickLabelGap = value; return (B) this; } /** * 設定屬性{@link Axis#setTickLabelRotation(double)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B tickLabelRotation(double value) { this.hasTickLabelRotation = true; this.valTickLabelRotation = value; return (B) this; } /** * 設定屬性{@link Axis#setTickLabelsVisible(boolean)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B tickLabelsVisible(boolean value) { this.hasTickLabelsVisible = true; this.valTickLabelsVisible = value; return (B) this; } /** * 設定屬性{@link Axis#setTickLength(double)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B tickLength(double value) { this.hasTickLength = true; this.valTickLength = value; return (B) this; } /** * 設定屬性{@link Axis#setTickMarkVisible(boolean)}。 * * @param value 新的屬性值 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public B tickMarkVisible(boolean value) { this.hasTickMarkVisible = true; this.valTickMarkVisible = value; return (B) this; } /** * 設定集合屬性{@link Axis#getTickMarks}的內容。 * * @param value 新的集合內容 * @return 目前的建構器(this) * @deprecated 屬性值並非{@link javafx.collections.ObservableList} */ @Deprecated @SuppressWarnings("unchecked") public final B tickMarks(java.util.Collection<? extends javafx.scene.chart.Axis.TickMark<T>> value) { this.hasTickMarks = true; this.valTickMarks = (java.util.Collection<javafx.scene.chart.Axis.TickMark<T>>) value; return (B) this; } /** * 設定集合屬性{@link Axis#getTickMarks}的內容。 * * @param value 新的集合內容 * @return 目前的建構器(this) */ @SafeVarargs @SuppressWarnings("unchecked") public final B tickMarks(javafx.scene.chart.Axis.TickMark<T>... value) { this.hasTickMarks = true; this.valTickMarks = java.util.Arrays.asList(value); return (B) this; } /** * 增加集合屬性{@link Axis#getTickMarks}的內容。 * * @param value 新的集合內容 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B tickMarksAdd(java.util.Collection<? extends javafx.scene.chart.Axis.TickMark<T>> value) { java.util.Objects.requireNonNull(value); this.hasTickMarks = true; if (this.valTickMarks == null) this.valTickMarks = new java.util.ArrayList<>(value.size()); this.valTickMarks.addAll(value); return (B) this; } /** * 增加集合屬性{@link Axis#getTickMarks}的內容。 * * @param value 新的集合內容 * @return 目前的建構器(this) */ @SafeVarargs @SuppressWarnings("unchecked") public final B tickMarksAdd(javafx.scene.chart.Axis.TickMark<T>... value) { java.util.Objects.requireNonNull(value); this.hasTickMarks = true; if (this.valTickMarks == null) this.valTickMarks = new java.util.ArrayList<>(value.length); this.valTickMarks.addAll(java.util.Arrays.asList(value)); return (B) this; } /** * 增加集合屬性{@link Axis#getTickMarks}的內容,排除null項目。 * * @param value 新的集合內容 * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B tickMarksAddNonNull(java.util.Collection<? extends javafx.scene.chart.Axis.TickMark<T>> value) { java.util.Objects.requireNonNull(value); this.hasTickMarks = true; if (this.valTickMarks == null) this.valTickMarks = new java.util.ArrayList<>(value.size()); for (javafx.scene.chart.Axis.TickMark<T> i : value) if (i != null) this.valTickMarks.add(i); return (B) this; } /** * 增加集合屬性{@link Axis#getTickMarks}的內容,排除null項目。 * * @param value 新的集合內容 * @return 目前的建構器(this) */ @SafeVarargs @SuppressWarnings("unchecked") public final B tickMarksAddNonNull(javafx.scene.chart.Axis.TickMark<T>... value) { java.util.Objects.requireNonNull(value); this.hasTickMarks = true; if (this.valTickMarks == null) this.valTickMarks = new java.util.ArrayList<>(value.length); for (javafx.scene.chart.Axis.TickMark<T> i : value) if (i != null) this.valTickMarks.add(i); return (B) this; } /** * 設定屬性{@link Axis#animatedProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindAnimated(javafx.beans.value.ObservableValue<? extends Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1Animated = true; this.obsrv1Animated = source; this.bound2Animated = false; this.obsrv2Animated = null; return (B) this; } /** * 設定屬性{@link Axis#animatedProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalAnimated(javafx.beans.property.Property<Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1Animated = false; this.obsrv1Animated = null; this.bound2Animated = true; this.obsrv2Animated = source; return (B) this; } /** * 設定屬性{@link Axis#autoRangingProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindAutoRanging(javafx.beans.value.ObservableValue<? extends Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1AutoRanging = true; this.obsrv1AutoRanging = source; this.bound2AutoRanging = false; this.obsrv2AutoRanging = null; return (B) this; } /** * 設定屬性{@link Axis#autoRangingProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalAutoRanging(javafx.beans.property.Property<Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1AutoRanging = false; this.obsrv1AutoRanging = null; this.bound2AutoRanging = true; this.obsrv2AutoRanging = source; return (B) this; } /** * 設定屬性{@link Axis#labelProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindLabel(javafx.beans.value.ObservableValue<? extends java.lang.String> source) { java.util.Objects.requireNonNull(source); this.bound1Label = true; this.obsrv1Label = source; this.bound2Label = false; this.obsrv2Label = null; return (B) this; } /** * 設定屬性{@link Axis#labelProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalLabel(javafx.beans.property.Property<java.lang.String> source) { java.util.Objects.requireNonNull(source); this.bound1Label = false; this.obsrv1Label = null; this.bound2Label = true; this.obsrv2Label = source; return (B) this; } /** * 設定屬性{@link Axis#sideProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindSide(javafx.beans.value.ObservableValue<? extends javafx.geometry.Side> source) { java.util.Objects.requireNonNull(source); this.bound1Side = true; this.obsrv1Side = source; this.bound2Side = false; this.obsrv2Side = null; return (B) this; } /** * 設定屬性{@link Axis#sideProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalSide(javafx.beans.property.Property<javafx.geometry.Side> source) { java.util.Objects.requireNonNull(source); this.bound1Side = false; this.obsrv1Side = null; this.bound2Side = true; this.obsrv2Side = source; return (B) this; } /** * 設定屬性{@link Axis#tickLabelFillProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindTickLabelFill(javafx.beans.value.ObservableValue<? extends javafx.scene.paint.Paint> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelFill = true; this.obsrv1TickLabelFill = source; this.bound2TickLabelFill = false; this.obsrv2TickLabelFill = null; return (B) this; } /** * 設定屬性{@link Axis#tickLabelFillProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalTickLabelFill(javafx.beans.property.Property<javafx.scene.paint.Paint> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelFill = false; this.obsrv1TickLabelFill = null; this.bound2TickLabelFill = true; this.obsrv2TickLabelFill = source; return (B) this; } /** * 設定屬性{@link Axis#tickLabelFontProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindTickLabelFont(javafx.beans.value.ObservableValue<? extends javafx.scene.text.Font> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelFont = true; this.obsrv1TickLabelFont = source; this.bound2TickLabelFont = false; this.obsrv2TickLabelFont = null; return (B) this; } /** * 設定屬性{@link Axis#tickLabelFontProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalTickLabelFont(javafx.beans.property.Property<javafx.scene.text.Font> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelFont = false; this.obsrv1TickLabelFont = null; this.bound2TickLabelFont = true; this.obsrv2TickLabelFont = source; return (B) this; } /** * 設定屬性{@link Axis#tickLabelGapProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindTickLabelGap(javafx.beans.value.ObservableValue<? extends Number> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelGap = true; this.obsrv1TickLabelGap = source; this.bound2TickLabelGap = false; this.obsrv2TickLabelGap = null; return (B) this; } /** * 設定屬性{@link Axis#tickLabelGapProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalTickLabelGap(javafx.beans.property.Property<Number> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelGap = false; this.obsrv1TickLabelGap = null; this.bound2TickLabelGap = true; this.obsrv2TickLabelGap = source; return (B) this; } /** * 設定屬性{@link Axis#tickLabelRotationProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindTickLabelRotation(javafx.beans.value.ObservableValue<? extends Number> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelRotation = true; this.obsrv1TickLabelRotation = source; this.bound2TickLabelRotation = false; this.obsrv2TickLabelRotation = null; return (B) this; } /** * 設定屬性{@link Axis#tickLabelRotationProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalTickLabelRotation(javafx.beans.property.Property<Number> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelRotation = false; this.obsrv1TickLabelRotation = null; this.bound2TickLabelRotation = true; this.obsrv2TickLabelRotation = source; return (B) this; } /** * 設定屬性{@link Axis#tickLabelsVisibleProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindTickLabelsVisible(javafx.beans.value.ObservableValue<? extends Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelsVisible = true; this.obsrv1TickLabelsVisible = source; this.bound2TickLabelsVisible = false; this.obsrv2TickLabelsVisible = null; return (B) this; } /** * 設定屬性{@link Axis#tickLabelsVisibleProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalTickLabelsVisible(javafx.beans.property.Property<Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1TickLabelsVisible = false; this.obsrv1TickLabelsVisible = null; this.bound2TickLabelsVisible = true; this.obsrv2TickLabelsVisible = source; return (B) this; } /** * 設定屬性{@link Axis#tickLengthProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindTickLength(javafx.beans.value.ObservableValue<? extends Number> source) { java.util.Objects.requireNonNull(source); this.bound1TickLength = true; this.obsrv1TickLength = source; this.bound2TickLength = false; this.obsrv2TickLength = null; return (B) this; } /** * 設定屬性{@link Axis#tickLengthProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalTickLength(javafx.beans.property.Property<Number> source) { java.util.Objects.requireNonNull(source); this.bound1TickLength = false; this.obsrv1TickLength = null; this.bound2TickLength = true; this.obsrv2TickLength = source; return (B) this; } /** * 設定屬性{@link Axis#tickMarkVisibleProperty}的連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindTickMarkVisible(javafx.beans.value.ObservableValue<? extends Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1TickMarkVisible = true; this.obsrv1TickMarkVisible = source; this.bound2TickMarkVisible = false; this.obsrv2TickMarkVisible = null; return (B) this; } /** * 設定屬性{@link Axis#tickMarkVisibleProperty}的雙向連結。 * * @param value 新的屬性連結(單向) * @return 目前的建構器(this) */ @SuppressWarnings("unchecked") public final B bindBidirectionalTickMarkVisible(javafx.beans.property.Property<Boolean> source) { java.util.Objects.requireNonNull(source); this.bound1TickMarkVisible = false; this.obsrv1TickMarkVisible = null; this.bound2TickMarkVisible = true; this.obsrv2TickMarkVisible = source; return (B) this; } }