EventHandler property implementations in Scene and Window use anonymous classes derived from ObjectPropertyBase, for example:
```
public final ObjectProperty<EventHandler<? super MouseEvent>> onMousePressedProperty() {
if (onMousePressed == null) {
onMousePressed = new ObjectPropertyBase<>() {
@Override
protected void invalidated() {
setEventHandler(MouseEvent.MOUSE_PRESSED, get());
}
@Override
public Object getBean() {
return Scene.this;
}
@Override
public String getName() {
return "onMousePressed";
}
};
}
return onMousePressed;
```
We can remove lots of boilerplate code by factoring out the implementation into a common class.
```
public final ObjectProperty<EventHandler<? super MouseEvent>> onMousePressedProperty() {
if (onMousePressed == null) {
onMousePressed = new ObjectPropertyBase<>() {
@Override
protected void invalidated() {
setEventHandler(MouseEvent.MOUSE_PRESSED, get());
}
@Override
public Object getBean() {
return Scene.this;
}
@Override
public String getName() {
return "onMousePressed";
}
};
}
return onMousePressed;
```
We can remove lots of boilerplate code by factoring out the implementation into a common class.
- links to
-
Commit(master) openjdk/jfx/9edc1696
-
Review(master) openjdk/jfx/1819