I am seeking feedback on http://cr.openjdk.java.net/~dgrieve/RT-36510/webrev.00 which addresses https://javafx-jira.kenai.com/browse/RT-36510.

This iteration reduces the boiler-plate to one line to create the StyleableProperty and one method to return the CssMetaData list.

Example use:

public class MyButton extends Button {

    public MyButton(String text) {
        super(text);
        getStyleClass().add("my-button");
    }

public ObservableValue<String> fooProperty() { return (ObservableValue<String>)foo; }
    public String getFoo() { return foo.getValue(); }
    public void setFoo(String value) { foo.setValue(value); }
private final StyleableProperty<String> foo = StyleablePropertyFactory.getInstance().createStyleableStringProperty(this, "foo", "-my-foo", s -> ((MyButton)s).foo);

public ObservableValue<Double> offsetProperty() { return (ObservableValue<Double>)offset; }
    public Double getOffset() { return offset.getValue().doubleValue(); }
    public void setOffset(Double value) { offset.setValue(value); }
private final StyleableProperty<Number> offset = StyleablePropertyFactory.getInstance().createStyleableNumberProperty(this, "offset", "-my-offset", s -> ((MyButton)s).offset);

public ObservableValue<Integer> countProperty() { return (ObservableValue<Integer>)count; }
    public Integer getCount() { return count.getValue().intValue(); }
    public void setCount(Integer value) { count.setValue(value); }
private final StyleableProperty<Number> count = StyleablePropertyFactory.getInstance().createStyleableNumberProperty(this, "count", "-my-count", s -> ((MyButton)s).count);

    @Override
public List<CssMetaData<? extends Styleable, ?>> getControlCssMetaData() {
        return StyleablePropertyFactory.getInstance().getCssMetaData(this);
    }

}

Reply via email to