JavaFX 9 & FXCanvas

Kevin Rushforth kevin.rushforth at oracle.com
Thu Jun 16 01:38:46 UTC 2016


In general, everyone who contributes code needs to assign joint 
ownership to Oracle under the OCA. Dalibor would be the best one to 
answer specific OCA questions.

As for time frame, the schedule is on the JDK 9 project page:

http://openjdk.java.net/projects/jdk9/

Any bug can be fixed before "Rampdown Start" (subject to code review, 
OCA, etc). P1-P3 bugs can be fixed up until the start of Rampdown Phase 
2 as long as they are non-intrusive fixes, although the expectation is 
that the bug backlog targeted for 9 is done by ZBB.

So the short answer is that Sep 1 (start of RDP1) should be your target.

-- Kevin


Alexander Nyßen wrote:
> Hi Kevin,
>
>
>> Am 14.06.2016 um 23:00 schrieb Kevin Rushforth 
>> <kevin.rushforth at oracle.com <mailto:kevin.rushforth at oracle.com>>:
>>
>> 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:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8159227 (properly forward 
>> consumption state of key events)
>> https://bugs.openjdk.java.net/browse/JDK-8143596 (properly forward 
>> touch gestures)
>> https://bugs.openjdk.java.net/browse/JDK-8088147 (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 https://bugs.openjdk.java.net/browse/JDK-8088262). We then applied 
> a couple of fixes to it to make it properly work and augmented it with 
> a fix to https://bugs.openjdk.java.net/browse/JDK-8088147. That leads 
> me to two questions:
>
> 1) How would I have to handle the copyright? Jan Köhnlein already 
> stated in https://bugs.openjdk.java.net/browse/JDK-8088262 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:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8143597 (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 com.sun.glass.ui.Robot 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.
>
> Cheers,
> Alexander
>
>>
>> -- Kevin
>>
>> [1] http://openjdk.java.net/contribute/
>>
>> 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 
>>> (http://git.eclipse.org/c/gef/org.eclipse.gef4.git/tree/org.eclipse.gef4.fx.swt/src/org/eclipse/gef4/fx/swt/canvas/FXCanvasEx.java 
>>> <http://git.eclipse.org/c/gef/org.eclipse.gef4.git/tree/org.eclipse.gef4.fx.swt/src/org/eclipse/gef4/fx/swt/canvas/FXCanvasEx.java>) 
>>> to properly handle forwarding of touch gesture events 
>>> (https://bugs.openjdk.java.net/browse/JDK-8143596 
>>> <https://bugs.openjdk.java.net/browse/JDK-8143596>) through an 
>>> internal delegate 
>>> (http://git.eclipse.org/c/gef/org.eclipse.gef4.git/tree/org.eclipse.gef4.fx.swt/src/org/eclipse/gef4/fx/swt/gestures/SWT2FXEventConverter.java 
>>> <http://git.eclipse.org/c/gef/org.eclipse.gef4.git/tree/org.eclipse.gef4.fx.swt/src/org/eclipse/gef4/fx/swt/gestures/SWT2FXEventConverter.java>), 
>>> and to add support for image cursors 
>>> (https://bugs.openjdk.java.net/browse/JDK-8088147 
>>> <https://bugs.openjdk.java.net/browse/JDK-8088147>). 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 
>>> (https://bugs.openjdk.java.net/browse/JDK-8159227 
>>> <https://bugs.openjdk.java.net/browse/JDK-8159227>) 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 
>>> https://bugs.openjdk.java.net/browse/JDK-8143596 
>>> <https://bugs.openjdk.java.net/browse/JDK-8143596> 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 
>>> (https://bugs.openjdk.java.net/browse/JDK-8143597 
>>> <https://bugs.openjdk.java.net/browse/JDK-8143597>) will definitely 
>>> become a blocker in case the only workaround (via 
>>> com.sun.glass.ui.Robot) 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 
>>> (https://bugs.openjdk.java.net/browse/JDK-8090763 
>>> <https://bugs.openjdk.java.net/browse/JDK-8090763>) will not be 
>>> offered yet.
>>>
>>> Regards,
>>> Alexander
>>>  
>>
>
> --
> Dr. Alexander Nyßen
> Dipl.-Inform.
> Principal Engineer
>
> Telefon: +49 (0) 231 / 98 60-202
> Telefax: +49 (0) 231 / 98 60-211
> Mobil: +49 (0) 151 /  17396743
>
> http://www.itemis.de 
> alexander.nyssen at itemis.de <mailto:alexander.nyssen at itemis.de> 
>
> 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