PseudoClass represents one unique pseudo-class state. Introducing a
pseudo-class into a JavaFX class only requires that the method
javafx.scene.Node.pseudoClassStateChanged(javafx.css.PseudoClass, boolean)
be called when the pseudo-class state changes. Typically, the
pseudoClassStateChanged method is called from the
protected void invalidated() method of one of the property base
classes in the javafx.beans.property package.
Note that if a node has a default pseudo-class state, a horizontal orientation
for example, pseudoClassStateChanged should be called from the
constructor to set the initial state.
The following example would allow "xyzzy" to be used as a
pseudo-class in a CSS selector.
public boolean isMagic() {
return magic.get();
}
public BooleanProperty magicProperty() {
return magic;
}
public BooleanProperty magic =
new BooleanPropertyBase(false) {
@Override protected void invalidated() {
pseudoClassStateChanged(MAGIC_PSEUDO_CLASS. get());
}
@Override public Object getBean() {
return MyControl.this;
}
@Override public String getName() {
return "magic";
}
}
private static final PseudoClass
MAGIC_PSEUDO_CLASS = PseudoClass.getPseudoClass("xyzzy");