JavaFX 9 & FXCanvas

Alexander Nyßen nyssen at
Wed Jun 15 05:36:51 UTC 2016

Hi Kevin,

> Am 14.06.2016 um 23:00 schrieb Kevin Rushforth <kevin.rushforth at>:
> Hi,
> As far as we know, FXCanvas is now usable in an OSGi context with JDK 9 + Jigsaw, so you should be able to test this with the latest JDK 9 early access build.

I will contact Tom Schindl w.r.t. this as he maintains the OSGi-integration we use at Eclipse. I have seen on this list that he was already active (but don’t know the results yet).
> You mentioned that the following bugs are critical for you:
> (properly forward consumption state of key events)
> (properly forward touch gestures)
> (custom cursors)
> There is still time to fix bugs for JDK 9, but I none of the above are currently targeted for 9, and it seems unlikely that they will make it. Would you be interested in contributing fixes for these bugs? If so, then please check the following OpenJDK Wiki page [1].

Yes, I am willing to contribute patches for these. The forwarding of touch gestures we currently provide however is based on an initial contribution (under the terms of EPL) by Jan Köhnlein to our project (based on the code he mentioned in We then applied a couple of fixes to it to make it properly work and augmented it with a fix to That leads me to two questions:

1) How would I have to handle the copyright? Jan Köhnlein already stated in that he was willing to contribute the necessary code. Would it require he (as well as all GEF committers that worked on the mentioned fixes) would have to sign the OCA as well? Is there any experience on how to transfer EPL-licensed code already?
2) Up to when could patches be accepted for JavaFX 9?

> You also mentioned the following RFE:
> (API to access current mouse pointer location)
> There is a vanishingly small amount of time to add replacement API for internal methods that will be hidden by the module system. It would need to be a simple, well-defined API and we need good justification to do this. Is the above needed as part of your workarounds for the three bugs mentioned earlier or is there some other reason that you need this?

This RFE unrelated to the three issues mentioned before. On all platforms except Mac it seems to be possible to use java.awt.MouseInfo as a workaround (while we had a bit of struggle to get it work in the context of OSGi; we have to manipulate the awt headless mode property by means of reflection). On Mac, this does not work, so here is the only option. While it would in principle be possible to track the mouse location by some global event filter as well to mimic this functionality in client code, this would IMHO be a quite ugly solution.


> -- Kevin
> [1]
> Alexander Nyßen wrote:
>> The Eclipse Graphical Editing Framework (GEF) project as well as other Eclipse project rely on the JavaFX-SWT-integration that is realized through FXCanvas.
>> We at GEF, however, do not use it out-of-the-box but have created a subclass ( <>) to properly handle forwarding of touch gesture events ( <>) through an internal delegate ( <>), and to add support for image cursors ( <>). Unfortunately, both fixes provided by us require access to internal API and will thus - AFAIK - no longer work with Jigsaw. Forwarding of SWT key events' consumption state ( <>) is a related issue, for which a workaround in client code would require access to internal API, too.
>> By following this list, I got the impression that it is not completely clear yet, if and how the JavaFX-SWT-integration will be usable in an OSGi context with Jigsaw, so let me at least point out that this is quite essential to us. And while <> is being marked as only „nice-to-have“, at least for us this is not the case, as an Eclipse-integrated graphical application that does not support modern touch devices will not really be acceptable. As such, let me ask whether there is a chance we can get this functionality migrated to FXCanvas as part of JavaFX 9. I would like to support this as far as I can.
>> Last, I would like to point out that the unavailability of a public API to retrieve the current mouse pointer location ( <>) will definitely become a blocker in case the only workaround (via will no longer work because of Jigsaw. Please consider to include a public API for this within JavaFX 9, even if the related Glass Robot API ( <>) will not be offered yet.
>> Regards,
>> Alexander

Dr. Alexander Nyßen
Principal Engineer

Telefon: +49 (0) 231 / 98 60-202
Telefax: +49 (0) 231 / 98 60-211
Mobil: +49 (0) 151 /  17396743
alexander.nyssen at

itemis AG
Am Brambusch 15-24
44536 Lünen

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Jens Wagener (Vors.), Wolfgang Neuhaus

Aufsichtsrat: Prof. Dr. Burkhard Igel (Vors.), Michael Neuhaus, Jennifer Fiorentino

More information about the openjfx-dev mailing list