<AWT Dev> [9/8u40] Review request for RT-37149 and JDK-8049065 : Implement DnD for SwingNode

Anthony Petrov anthony.petrov at oracle.com
Mon Aug 11 17:57:43 UTC 2014

Thank you very much, Petr!

Tomorrow I'll be pushing both JDK 9 and FX 8u-dev parts to the 
repositories unless anyone raises any objections.

After that, I'll be requesting an approval to back-port the JDK fix to 
JDK 8u-dev, so that the whole feature could be delivered to JDK/FX 8u40.

best regards,

On 8/11/2014 6:27 PM, Petr Pchelko wrote:
> Hello, Anthony.
> The AWT part looks good to me.
> With best regards. Petr.
>> On Aug 6, 2014, at 9:12 PM, Anthony Petrov <anthony.petrov at oracle.com> wrote:
>> Anton: thank you for reviewing the fix.
>> All: I need at least one more reviewer for the JDK part of the fix because we're going to back-port the change to 8u40. Could anyone please review it? Artem, Sergey, anyone?
>> For your convenience: https://javafx-jira.kenai.com/browse/RT-37149
>> http://cr.openjdk.java.net/~anthony/9-5.2/
>> https://bugs.openjdk.java.net/browse/JDK-8049065
>> --
>> best regards,
>> Anthony
>> On 8/5/2014 5:08 PM, Anthony Petrov wrote:
>>> Anton, Artem, Steve,
>>> Could you please review this fix?
>>> --
>>> best regards,
>>> Anthony
>>> On 7/18/2014 6:44 PM, Anthony Petrov wrote:
>>>> Hi Petr, Anton, Artem, Steve,
>>>> Please review the fix at https://javafx-jira.kenai.com/browse/RT-37149
>>>> Webrevs:
>>>> JDK: http://cr.openjdk.java.net/~anthony/9-5.2/
>>>> FX: http://cr.openjdk.java.net/~anthony/g-522-swingNodeDnD-RT-37149.3/
>>>> JavaFX implements the DragSourceContextPeer and DragGestureRecognizer so
>>>> that SwingNode content could pose as a drag source. In order to support
>>>> a drop target, the DropTargetContextPeer is implemented in SwingNode and
>>>> the add/removeDropTarget() methods register/unregister the drop target
>>>> listeners.
>>>> The changes in JDK are mostly technical. We simply delegate the
>>>> Toolkit.createDragSourceContextPeer() and
>>>> Toolkit.createDragGestureRecognizer() factory methods to SwingNode.
>>>> Similarly, we delegate the DropTargetPeer.add/removeDropTarget()
>>>> operations to SwingNode as well.
>>>> In FX I've factored out the CachingTransferable class from the
>>>> SwingDragSource class so as to share the implementation with the
>>>> SwingNode DnD support. Also I've added a few utility methods to
>>>> DataFlavorUtils and SwingFXUtils. The main fix is the new code in
>>>> FXDnD.java which actually implements the AWT interfaces, installs
>>>> appropriate event handlers on the SwingNode node in FX, and handles all
>>>> the DnD events.
>>>> Note that the JDK <-> FX interface is loose because I use default
>>>> methods in the LightweightContent interface, so that you can run new FX
>>>> with the old JDK, or old FX with the new JDK, and nothing should break.
>>>> Obviously, the DnD in SwingNode will only work if both JDK and FX are
>>>> patched.
>>>> I've tested these changes on Windows and Mac with the sample code from
>>>> this JIRA as well as a JFXPanel DnD test application from RT-34283. The
>>>> DnD works fine for me in both intra- and inter-process modes.
>>>> Please post your review comments in JIRA.
>>>> --
>>>> best regards,
>>>> Anthony

More information about the awt-dev mailing list