Skip to content

Commit 14776d2

Browse files
Merge pull request #552 from JordanMartinez/cleanupCssProperties
Cleanup css properties
2 parents 71f63cb + 76b5792 commit 14776d2

4 files changed

Lines changed: 66 additions & 183 deletions

File tree

richtextfx/src/main/java/org/fxmisc/richtext/CssProperties.java

Lines changed: 0 additions & 93 deletions
This file was deleted.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.fxmisc.richtext;
2+
3+
import javafx.css.CssMetaData;
4+
import javafx.css.Styleable;
5+
import javafx.css.StyleableObjectProperty;
6+
7+
public class CustomStyleableProperty<T> extends StyleableObjectProperty<T> {
8+
9+
private final Object bean;
10+
private final String name;
11+
private final CssMetaData<? extends Styleable, T> cssMetaData;
12+
13+
public CustomStyleableProperty(T initialValue, String name, Object bean,
14+
CssMetaData<? extends Styleable, T> cssMetaData) {
15+
super(initialValue);
16+
this.bean = bean;
17+
this.name = name;
18+
this.cssMetaData = cssMetaData;
19+
}
20+
21+
@Override
22+
public Object getBean() {
23+
return bean;
24+
}
25+
26+
@Override
27+
public String getName() {
28+
return name;
29+
}
30+
31+
@Override
32+
public CssMetaData<? extends Styleable, T> getCssMetaData() {
33+
return cssMetaData;
34+
}
35+
36+
}

richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledArea.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ private static int clamp(int min, int val, int max) {
259259
: val;
260260
}
261261

262+
private static final PseudoClass READ_ONLY = PseudoClass.getPseudoClass("read-only");
262263
private static final PseudoClass HAS_CARET = PseudoClass.getPseudoClass("has-caret");
263264
private static final PseudoClass FIRST_PAR = PseudoClass.getPseudoClass("first-paragraph");
264265
private static final PseudoClass LAST_PAR = PseudoClass.getPseudoClass("last-paragraph");
@@ -279,23 +280,28 @@ private static int clamp(int min, int val, int max) {
279280
* Background fill for highlighted text.
280281
*/
281282
private final StyleableObjectProperty<Paint> highlightFill
282-
= new CssProperties.HighlightFillProperty(this, HIGHLIGHT_FILL);
283+
= new CustomStyleableProperty<>(Color.DODGERBLUE, "highlightFill", this, HIGHLIGHT_FILL);
283284

284285
/**
285286
* Text color for highlighted text.
286287
*/
287288
private final StyleableObjectProperty<Paint> highlightTextFill
288-
= new CssProperties.HighlightTextFillProperty(this, HIGHLIGHT_TEXT_FILL);
289+
= new CustomStyleableProperty<>(Color.WHITE, "highlightTextFill", this, HIGHLIGHT_TEXT_FILL);
289290

290291
/**
291292
* Controls the blink rate of the caret, when one is displayed. Setting
292293
* the duration to zero disables blinking.
293294
*/
294295
private final StyleableObjectProperty<javafx.util.Duration> caretBlinkRate
295-
= new CssProperties.CaretBlinkRateProperty(this, CARET_BLINK_RATE);
296+
= new CustomStyleableProperty<>(javafx.util.Duration.millis(500), "caretBlinkRate", this, CARET_BLINK_RATE);
296297

297298
// editable property
298-
private final BooleanProperty editable = new CssProperties.EditableProperty<>(this);
299+
private final BooleanProperty editable = new SimpleBooleanProperty(this, "editable", true) {
300+
@Override
301+
protected void invalidated() {
302+
((Region) getBean()).pseudoClassStateChanged(READ_ONLY, !get());
303+
}
304+
};
299305
@Override public final boolean isEditable() { return editable.get(); }
300306
@Override public final void setEditable(boolean value) { editable.set(value); }
301307
@Override public final BooleanProperty editableProperty() { return editable; }

richtextfx/src/main/java/org/fxmisc/richtext/TextExt.java

Lines changed: 20 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -46,92 +46,26 @@ public class TextExt extends Text {
4646

4747
CSS_META_DATA_LIST = Collections.unmodifiableList(styleables);
4848
}
49-
50-
private final StyleableObjectProperty<Paint> backgroundColor = new StyleableObjectProperty<Paint>(null) {
51-
@Override
52-
public Object getBean() {
53-
return TextExt.this;
54-
}
55-
56-
@Override
57-
public String getName() {
58-
return "backgroundColor";
59-
}
60-
61-
@Override
62-
public CssMetaData<TextExt, Paint> getCssMetaData() {
63-
return StyleableProperties.BACKGROUND_COLOR;
64-
}
65-
};
66-
67-
private final StyleableObjectProperty<Paint> underlineColor = new StyleableObjectProperty<Paint>(null) {
68-
@Override
69-
public Object getBean() {
70-
return TextExt.this;
71-
}
72-
73-
@Override
74-
public String getName() {
75-
return "underlineColor";
76-
}
77-
78-
@Override
79-
public CssMetaData<TextExt, Paint> getCssMetaData() {
80-
return StyleableProperties.UNDERLINE_COLOR;
81-
}
82-
};
83-
84-
private final StyleableObjectProperty<Number> underlineWidth = new StyleableObjectProperty<Number>(null) {
85-
@Override
86-
public Object getBean() {
87-
return TextExt.this;
88-
}
89-
90-
@Override
91-
public String getName() {
92-
return "underlineWidth";
93-
}
94-
95-
@Override
96-
public CssMetaData<TextExt, Number> getCssMetaData() {
97-
return StyleableProperties.UNDERLINE_WIDTH;
98-
}
99-
};
100-
101-
private final StyleableObjectProperty<Number[]> underlineDashArray = new StyleableObjectProperty<Number[]>(null) {
102-
@Override
103-
public Object getBean() {
104-
return TextExt.this;
105-
}
106-
107-
@Override
108-
public String getName() {
109-
return "underlineDashArray";
110-
}
111-
112-
@Override
113-
public CssMetaData<TextExt, Number[]> getCssMetaData() {
114-
return StyleableProperties.UNDERLINE_DASH_ARRAY;
115-
}
116-
};
117-
118-
119-
private final StyleableObjectProperty<StrokeLineCap> underlineCap = new StyleableObjectProperty<StrokeLineCap>(null) {
120-
@Override
121-
public Object getBean() {
122-
return TextExt.this;
123-
}
124-
125-
@Override
126-
public String getName() {
127-
return "underlineCap";
128-
}
129-
130-
@Override
131-
public CssMetaData<TextExt, StrokeLineCap> getCssMetaData() {
132-
return StyleableProperties.UNDERLINE_CAP;
133-
}
134-
};
49+
50+
private final StyleableObjectProperty<Paint> backgroundColor = new CustomStyleableProperty<>(
51+
null, "backgroundColor", this, StyleableProperties.BACKGROUND_COLOR
52+
);
53+
54+
private final StyleableObjectProperty<Paint> underlineColor = new CustomStyleableProperty<>(
55+
null, "underlineColor", this, StyleableProperties.UNDERLINE_COLOR
56+
);
57+
58+
private final StyleableObjectProperty<Number> underlineWidth = new CustomStyleableProperty<>(
59+
null, "underlineWidth", this, StyleableProperties.UNDERLINE_WIDTH
60+
);
61+
62+
private final StyleableObjectProperty<Number[]> underlineDashArray = new CustomStyleableProperty<>(
63+
null, "underlineDashArray", this, StyleableProperties.UNDERLINE_DASH_ARRAY
64+
);
65+
66+
private final StyleableObjectProperty<StrokeLineCap> underlineCap = new CustomStyleableProperty<>(
67+
null, "underlineCap", this, StyleableProperties.UNDERLINE_CAP
68+
);
13569

13670
public TextExt(String text) {
13771
super(text);

0 commit comments

Comments
 (0)