private static class StyleableProperties { private static final CssMetaData<ProgressCircleIndicator, Number> INNER_CIRCLE_RADIUS = new CssMetaData<ProgressCircleIndicator, Number>( "-fx-inner-radius", SizeConverter.getInstance(), 60) { @Override public boolean isSettable(ProgressCircleIndicator n) { return n.innerCircleRadiusProperty() == null || !n.innerCircleRadiusProperty().isBound(); } @Override public StyleableProperty<Number> getStyleableProperty(ProgressCircleIndicator n) { return (StyleableProperty<Number>) n.innerCircleRadiusProperty(); } }; public static final List<CssMetaData<? extends Styleable, ?>> STYLEABLES; static { final List<CssMetaData<? extends Styleable, ?>> styleables = new ArrayList<>(Control.getClassCssMetaData()); styleables.add(INNER_CIRCLE_RADIUS); STYLEABLES = Collections.unmodifiableList(styleables); } }
private static class StyleableProperties { private static final CssMetaData<ScrollBar, Orientation> ORIENTATION = new CssMetaData<ScrollBar, Orientation>( "-fx-orientation", new EnumConverter<Orientation>(Orientation.class), Orientation.HORIZONTAL) { @Override public Orientation getInitialValue(ScrollBar node) { // A vertical ScrollBar should remain vertical return node.getOrientation(); } @Override public boolean isSettable(ScrollBar n) { return n.orientation == null || !n.orientation.isBound(); } @Override public StyleableProperty<Orientation> getStyleableProperty(ScrollBar n) { return (StyleableProperty<Orientation>) n.orientationProperty(); } }; private static final CssMetaData<ScrollBar, Number> UNIT_INCREMENT = new CssMetaData<ScrollBar, Number>("-fx-unit-increment", SizeConverter.getInstance(), 1.0) { @Override public boolean isSettable(ScrollBar n) { return n.unitIncrement == null || !n.unitIncrement.isBound(); } @Override public StyleableProperty<Number> getStyleableProperty(ScrollBar n) { return (StyleableProperty<Number>) n.unitIncrementProperty(); } }; private static final CssMetaData<ScrollBar, Number> BLOCK_INCREMENT = new CssMetaData<ScrollBar, Number>( "-fx-block-increment", SizeConverter.getInstance(), 10.0) { @Override public boolean isSettable(ScrollBar n) { return n.blockIncrement == null || !n.blockIncrement.isBound(); } @Override public StyleableProperty<Number> getStyleableProperty(ScrollBar n) { return (StyleableProperty<Number>) n.blockIncrementProperty(); } }; private static final List<CssMetaData<? extends Styleable, ?>> STYLEABLES; static { final List<CssMetaData<? extends Styleable, ?>> styleables = new ArrayList<CssMetaData<? extends Styleable, ?>>(Control.getClassCssMetaData()); styleables.add(ORIENTATION); styleables.add(UNIT_INCREMENT); styleables.add(BLOCK_INCREMENT); STYLEABLES = Collections.unmodifiableList(styleables); } }
/** * Super-lazy instantiation pattern from Bill Pugh. * * @treatAsPrivate implementation detail */ private static class StyleableProperties { private static final CssMetaData<FlowPane, Pos> ALIGNMENT = new CssMetaData<FlowPane, Pos>( "-fx-alignment", new EnumConverter<Pos>(Pos.class), Pos.TOP_LEFT) { @Override public boolean isSettable(FlowPane node) { return node.alignment == null || !node.alignment.isBound(); } @Override public StyleableProperty<Pos> getStyleableProperty(FlowPane node) { return (StyleableProperty<Pos>) node.alignmentProperty(); } }; private static final CssMetaData<FlowPane, HPos> COLUMN_HALIGNMENT = new CssMetaData<FlowPane, HPos>( "-fx-column-halignment", new EnumConverter<HPos>(HPos.class), HPos.LEFT) { @Override public boolean isSettable(FlowPane node) { return node.columnHalignment == null || !node.columnHalignment.isBound(); } @Override public StyleableProperty<HPos> getStyleableProperty(FlowPane node) { return (StyleableProperty<HPos>) node.columnHalignmentProperty(); } }; private static final CssMetaData<FlowPane, Number> HGAP = new CssMetaData<FlowPane, Number>("-fx-hgap", SizeConverter.getInstance(), 0.0) { @Override public boolean isSettable(FlowPane node) { return node.hgap == null || !node.hgap.isBound(); } @Override public StyleableProperty<Number> getStyleableProperty(FlowPane node) { return (StyleableProperty<Number>) node.hgapProperty(); } }; private static final CssMetaData<FlowPane, VPos> ROW_VALIGNMENT = new CssMetaData<FlowPane, VPos>( "-fx-row-valignment", new EnumConverter<VPos>(VPos.class), VPos.CENTER) { @Override public boolean isSettable(FlowPane node) { return node.rowValignment == null || !node.rowValignment.isBound(); } @Override public StyleableProperty<VPos> getStyleableProperty(FlowPane node) { return (StyleableProperty<VPos>) node.rowValignmentProperty(); } }; private static final CssMetaData<FlowPane, Orientation> ORIENTATION = new CssMetaData<FlowPane, Orientation>( "-fx-orientation", new EnumConverter<Orientation>(Orientation.class), Orientation.HORIZONTAL) { @Override public Orientation getInitialValue(FlowPane node) { // A vertical flow pane should remain vertical return node.getOrientation(); } @Override public boolean isSettable(FlowPane node) { return node.orientation == null || !node.orientation.isBound(); } @Override public StyleableProperty<Orientation> getStyleableProperty(FlowPane node) { return (StyleableProperty<Orientation>) node.orientationProperty(); } }; private static final CssMetaData<FlowPane, Number> VGAP = new CssMetaData<FlowPane, Number>("-fx-vgap", SizeConverter.getInstance(), 0.0) { @Override public boolean isSettable(FlowPane node) { return node.vgap == null || !node.vgap.isBound(); } @Override public StyleableProperty<Number> getStyleableProperty(FlowPane node) { return (StyleableProperty<Number>) node.vgapProperty(); } }; private static final List<CssMetaData<? extends Styleable, ?>> STYLEABLES; static { final List<CssMetaData<? extends Styleable, ?>> styleables = new ArrayList<CssMetaData<? extends Styleable, ?>>(Region.getClassCssMetaData()); styleables.add(ALIGNMENT); styleables.add(COLUMN_HALIGNMENT); styleables.add(HGAP); styleables.add(ROW_VALIGNMENT); styleables.add(ORIENTATION); styleables.add(VGAP); STYLEABLES = Collections.unmodifiableList(styleables); } }
/** Super-lazy instantiation pattern from Bill Pugh. */ @SuppressWarnings({"deprecation", "unchecked", "ConstantConditions"}) private static class StyleableProperties { public static final List<CssMetaData<? extends Styleable, ?>> STYLEABLES; private static final CssMetaData<ConfidenceProgressIndicator, Paint> PROGRESS_COLOR = new CssMetaData<ConfidenceProgressIndicator, Paint>( "-fx-progress-color", PaintConverter.getInstance(), null) { @Override public boolean isSettable(ConfidenceProgressIndicator n) { final ConfidenceProgressIndicatorSkin skin = (ConfidenceProgressIndicatorSkin) n.getSkin(); return skin.progressColor == null || !skin.progressColor.isBound(); } @Override public StyleableProperty<Paint> getStyleableProperty(ConfidenceProgressIndicator n) { final ConfidenceProgressIndicatorSkin skin = (ConfidenceProgressIndicatorSkin) n.getSkin(); return (StyleableProperty<Paint>) skin.progressColor; } }; private static final CssMetaData<ConfidenceProgressIndicator, Number> INDETERMINATE_SEGMENT_COUNT = new CssMetaData<ConfidenceProgressIndicator, Number>( "-fx-indeterminate-segment-count", SizeConverter.getInstance(), 8) { @Override public void set(ConfidenceProgressIndicator node, Number value, StyleOrigin origin) { super.set(node, value.intValue(), origin); } @Override public boolean isSettable(ConfidenceProgressIndicator n) { final ConfidenceProgressIndicatorSkin skin = (ConfidenceProgressIndicatorSkin) n.getSkin(); return skin.indeterminateSegmentCount == null || !skin.indeterminateSegmentCount.isBound(); } @Override public StyleableProperty<Number> getStyleableProperty(ConfidenceProgressIndicator n) { final ConfidenceProgressIndicatorSkin skin = (ConfidenceProgressIndicatorSkin) n.getSkin(); return (StyleableProperty<Number>) skin.indeterminateSegmentCount; } }; private static final CssMetaData<ConfidenceProgressIndicator, Boolean> SPIN_ENABLED = new CssMetaData<ConfidenceProgressIndicator, Boolean>( "-fx-spin-enabled", BooleanConverter.getInstance(), Boolean.FALSE) { @Override public boolean isSettable(ConfidenceProgressIndicator node) { final ConfidenceProgressIndicatorSkin skin = (ConfidenceProgressIndicatorSkin) node.getSkin(); return skin.spinEnabled == null || !skin.spinEnabled.isBound(); } @Override public StyleableProperty<Boolean> getStyleableProperty(ConfidenceProgressIndicator node) { final ConfidenceProgressIndicatorSkin skin = (ConfidenceProgressIndicatorSkin) node.getSkin(); return (StyleableProperty<Boolean>) skin.spinEnabled; } }; static { final List<CssMetaData<? extends Styleable, ?>> styleables = new ArrayList<>(SkinBase.getClassCssMetaData()); styleables.add(PROGRESS_COLOR); styleables.add(INDETERMINATE_SEGMENT_COUNT); styleables.add(SPIN_ENABLED); STYLEABLES = Collections.unmodifiableList(styleables); } }