1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ObjectProperty;
import javafx.css.CssMetaData;
import javafx.css.SimpleStyleableIntegerProperty;
import javafx.css.SimpleStyleableObjectProperty;
import javafx.css.StyleConverter;
import javafx.css.Styleable;
import javafx.css.StyleableProperty;
import javafx.scene.control.Control;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
public class MyControl extends Pane {
public MyControl() {
setMinSize(75, 25);
}
private static final CssMetaData FONT_META_DATA = new CssMetaData<MyControl, Font>("-fx-font", StyleConverter.getFontConverter()) {
@Override
public boolean isSettable(final MyControl styleable) {
return !styleable.fontProperty().isBound();
}
@Override
public StyleableProperty<Font> getStyleableProperty(MyControl styleable) {
return (StyleableProperty<Font>) styleable.fontProperty();
}
};
private static final CssMetaData COLOR_META_DATA = new CssMetaData<MyControl, Color>("-fx-color", StyleConverter.getColorConverter()) {
@Override
public boolean isSettable(final MyControl styleable) {
return !styleable.colorProperty().isBound();
}
@Override
public StyleableProperty<Color> getStyleableProperty(MyControl styleable) {
return (StyleableProperty<Color>) styleable.colorProperty();
}
};
private static final CssMetaData COUNT_META_DATA = new CssMetaData<MyControl, Number>("-fx-count", StyleConverter.getSizeConverter()) {
@Override
public boolean isSettable(final MyControl styleable) {
return !styleable.countProperty().isBound();
}
@Override
public StyleableProperty<Number> getStyleableProperty(MyControl styleable) {
return (StyleableProperty<Number>) styleable.countProperty();
}
};
private static final List<CssMetaData<? extends Styleable, ?>> CSS_META_DATA_LIST;
static {
final List<CssMetaData<? extends Styleable, ?>> temp = new ArrayList<>(Control.getClassCssMetaData());
temp.add(FONT_META_DATA);
temp.add(COLOR_META_DATA);
temp.add(COUNT_META_DATA);
CSS_META_DATA_LIST = Collections.unmodifiableList(temp);
}
public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData() {
return CSS_META_DATA_LIST;
}
@Override
public List<CssMetaData<? extends Styleable, ?>> getCssMetaData() {
return getClassCssMetaData();
}
private final ObjectProperty<Font> font = new SimpleStyleableObjectProperty<>(FONT_META_DATA, this, "font", Font.getDefault());
public final Font getFont() {
return font.get();
}
public final void setFont(final Font value) {
font.set(value);
}
public final ObjectProperty<Font> fontProperty() {
return font;
}
private final ObjectProperty<Color> color = new SimpleStyleableObjectProperty<>(COLOR_META_DATA, this, "color");
public final Color getColor() {
return color.get();
}
public final void setColor(final Color value) {
color.set(value);
}
public final ObjectProperty<Color> colorProperty() {
return color;
}
private final IntegerProperty count = new SimpleStyleableIntegerProperty(COUNT_META_DATA, this, "count");
public final int getCount() {
return count.get();
}
public final void setCount(final int value) {
count.set(value);
}
public final IntegerProperty countProperty() {
return count;
}
} |
Partager