Removal of com.sun.javafx.robot
Benjamin Gudehus
hastebrot at gmail.com
Fri May 13 05:47:51 UTC 2016
**Update:** I've found a work-around and quickly tested it on our test
suite. Previously we needed `FXRobot::keyPress()`, `FXRobot::keyType()`,
and `FXRobot::keyRelease()`. Since Java 8 it is possible to use
`Event.fireEvent()` and create three `KeyEvent`s (PRESS, TYPE, RELEASE).
~~~java
Platform.runLater(() -> {
Event.fireEvent(scene.getFocusOwner(), keyEvent);
});
~~~
The amount of needed changes for this work-around is small. No revert is
needed.
Thanks,
Benjamin
On Fri, May 13, 2016 at 6:53 AM, Benjamin Gudehus <hastebrot at gmail.com>
wrote:
> Hey,
>
> yesterday a code change was made [1, 2] which removes FXRobot and the
> com.sun.javafx.robot package in JavaFX 9.
>
> >The com.sun.javafx.robot package contains obsolete, unused Prism
> functionality that was intended for testing automation. It was superseded
> long ago by glass Robot and should be removed as dead code.
>
> Unfortunately FXRobot allows a use-case which is not covered by the glass
> robot. In TestFX we use the FXRobot to fire keytyped events that allow to
> type arbitrary (Unicode) characters. This solves multiple issues related to
> non-english keyboards and special characters and simplifies simulation of
> keyboard input greatly. There is also a commercial JavaFX framework that
> uses FXRobot to solve this issue; I spoke with the developers a while ago.
>
> If possible, could this change be reverted?
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8156809
> [2] http://cr.openjdk.java.net/~kcr/8156809/webrev.00/
>
> Regards,
> Benjamin
>
>
More information about the openjfx-dev
mailing list