SceneBuilder Integration in NetBeans
Eric Le Ponner
eric.le.ponner at oracle.com
Mon Mar 17 14:32:37 UTC 2014
Hi Sven,
As you mentioned, some fixes are also required at SB level (the strings passed to DataFormat).
I'm going to file a JIRA against Scene Builder for that.
I did a sample Swing test with Scene Builder Kit and reproduced the exception
reported in RT-36240. However it seems that this exception does not prevent
SB to complete its drag and drop gestures. Does it match what you've observed ?
Cheers.
Eric
Le 17 mars 2014 à 14:49, Sven Reimers <sven.reimers at gmail.com> a écrit :
> Created RT-36240
>
> -Sven
> Am 17.03.2014 13:10 schrieb "Kevin Rushforth" <kevin.rushforth at oracle.com>:
>
>> Hi Sven,
>>
>> If you file the bug then yes, we can look at it for 8u20 (there is no
>> "earlier").
>>
>> And thanks to Petr for providing the evaluation for this.
>>
>> -- Kevin
>>
>>
>> Sven Reimers wrote:
>>
>>> Ok.
>>>
>>> Will file an issue and if possible create a patch.
>>>
>>> Any this could end up in 8u20 (or earlier)?
>>>
>>> Thanks
>>>
>>> -Sven
>>> Am 17.03.2014 11:05 schrieb "Petr Pchelko" <petr.pchelko at oracle.com>:
>>>
>>>
>>>
>>>> Ok, I see.
>>>>
>>>> This is the problem in FX interop.
>>>> In javafx.embed.swing.SwingDnD.DnDTransferable class. It's wrapper that
>>>> wraps the FX dragboard into the Swing Trasferable.
>>>> It is a simple class and many features are simply not implemented. The
>>>> implementation is very basic - it just creates the DataFlavor with the
>>>> mime-type corresponding to the DataFormat mime-type. However it does not
>>>> take into account the representation class. This works fine for basic
>>>> types
>>>> like text or may be image, but it completely does not work for custom
>>>> types
>>>> with custom representation classes.
>>>>
>>>> You could file a bug for this.
>>>>
>>>> With best regards. Petr.
>>>>
>>>> On 17.03.2014, at 13:39, Sven Reimers <sven.reimers at gmail.com> wrote:
>>>>
>>>> The problem seems to be in AbstractDragSource in SceneBuilder. It defines
>>>> a javafx.scene.input.DataFormat.
>>>> This seems to cause problems if running embedded in Swing. I do not
>>>> define
>>>> my own DataFlavors..
>>>>
>>>> Any further help appreciated..
>>>>
>>>> -Sven
>>>> Am 17.03.2014 09:54 schrieb "Petr Pchelko" <petr.pchelko at oracle.com>:
>>>>
>>>>
>>>>
>>>>> Hello, Sven.
>>>>>
>>>>> Looks like you are not specifying the representation class for the
>>>>> DataFlavor and it defaults
>>>>> to the InputStream. So, scene builder puts a ByteBuffer while the
>>>>> DataTransferer is trying to treat it as an
>>>>> InputStream.
>>>>>
>>>>> Could you please try to explicitly specify the representation class in
>>>>> the DataFlavor you are trying to put?
>>>>> Like this: new DataFlavor("scene.builder/internal;
>>>>> class=java.nio.HeapByteBuffer", "SceneBuilder internal DF"")
>>>>>
>>>>> With best regards. Petr.
>>>>>
>>>>> On 17.03.2014, at 0:13, Sven Reimers <sven.reimers at gmail.com> wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Ok... figured it out. It seems scene.builder.internal crashes the Swing
>>>>>> parsing mechanism for mime types in the data transfer. Changing it to
>>>>>> scene.builder/internal fixes this problem.
>>>>>>
>>>>>> Shall I open an issue in Jira for it?
>>>>>>
>>>>>> Having fixed this I get another problem :-(
>>>>>> (see stacktrace below)
>>>>>>
>>>>>> Not sure how to fix this... investigating now.
>>>>>>
>>>>>> -Sven
>>>>>>
>>>>>> java.lang.ClassCastException: java.nio.HeapByteBuffer cannot be cast to
>>>>>> java.io.InputStream
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> sun.awt.datatransfer.DataTransferer.translateTransferable(
>>>>> DataTransferer.java:1372)
>>>>>
>>>>>
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> sun.lwawt.macosx.CDataTransferer.translateTransferable(
>>>>> CDataTransferer.java:131)
>>>>>
>>>>>
>>>>>> at sun.awt.datatransfer.DataTransferer$6.run(DataTransferer.java:2380)
>>>>>> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
>>>>>> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
>>>>>> at java.awt.EventQueue.access$400(EventQueue.java:97)
>>>>>> at java.awt.EventQueue$3.run(EventQueue.java:697)
>>>>>> at java.awt.EventQueue$3.run(EventQueue.java:691)
>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> java.security.ProtectionDomain$1.doIntersectionPrivilege(
>>>>> ProtectionDomain.java:75)
>>>>>
>>>>>
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> java.security.ProtectionDomain$1.doIntersectionPrivilege(
>>>>> ProtectionDomain.java:86)
>>>>>
>>>>>
>>>>>> at java.awt.EventQueue$4.run(EventQueue.java:719)
>>>>>> at java.awt.EventQueue$4.run(EventQueue.java:717)
>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> java.security.ProtectionDomain$1.doIntersectionPrivilege(
>>>>> ProtectionDomain.java:75)
>>>>>
>>>>>
>>>>>> at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> org.netbeans.core.TimableEventQueue.dispatchEvent(
>>>>> TimableEventQueue.java:159)
>>>>>
>>>>>
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> java.awt.EventDispatchThread.pumpOneEventForFilters(
>>>>> EventDispatchThread.java:201)
>>>>>
>>>>>
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> java.awt.EventDispatchThread.pumpEventsForFilter(
>>>>> EventDispatchThread.java:116)
>>>>>
>>>>>
>>>>>> at
>>>>>>
>>>>>>
>>>>>>
>>>>> java.awt.EventDispatchThread.pumpEventsForHierarchy(
>>>>> EventDispatchThread.java:105)
>>>>>
>>>>>
>>>>>> at java.awt.EventDispatchThread.pumpEvents(
>>>>>> EventDispatchThread.java:101)
>>>>>> at java.awt.EventDispatchThread.pumpEvents(
>>>>>> EventDispatchThread.java:93)
>>>>>> at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
>>>>>>
>>>>>>
>>>>>> On Sun, Mar 16, 2014 at 8:30 PM, Sven Reimers <sven.reimers at gmail.com
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Hi guys,
>>>>>>>
>>>>>>> hope someone can help me with the exception pasted below.
>>>>>>>
>>>>>>> Any idea how to go on from here?
>>>>>>>
>>>>>>> The code is available at
>>>>>>>
>>>>>>>
>>>>>> https://bitbucket.org/sreimers/nbscenebuilder/
>>>>>
>>>>>
>>>>>> Thanks
>>>>>>>
>>>>>>> -Sven
>>>>>>>
>>>>>>> java.lang.IllegalArgumentException: failed to
>>>>>>>
>>>>>>>
>>>>>> parse:scene.builder.internal
>>>>>
>>>>>
>>>>>> at java.awt.datatransfer.DataFlavor.<init>(DataFlavor.java:488)
>>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> javafx.embed.swing.SwingDnD$DnDTransferable.getTransferDataFlavors(
>>>>> SwingDnD.java:398)
>>>>>
>>>>>
>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> sun.awt.datatransfer.DataTransferer.getFormatsForTransferable(
>>>>> DataTransferer.java:655)
>>>>>
>>>>>
>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> sun.awt.dnd.SunDragSourceContextPeer.startDrag(
>>>>> SunDragSourceContextPeer.java:131)
>>>>>
>>>>>
>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> sun.lwawt.macosx.CDragSourceContextPeer.startDrag(
>>>>> CDragSourceContextPeer.java:88)
>>>>>
>>>>>
>>>>>> at java.awt.dnd.DragSource.startDrag(DragSource.java:321)
>>>>>>> at java.awt.dnd.DragSource.startDrag(DragSource.java:426)
>>>>>>> at java.awt.dnd.DragGestureEvent.startDrag(DragGestureEvent.java:237)
>>>>>>> at javafx.embed.swing.SwingDnD.startDrag(SwingDnD.java:284)
>>>>>>> at javafx.embed.swing.SwingDnD.access$1000(SwingDnD.java:73)
>>>>>>> at javafx.embed.swing.SwingDnD$4$1.run(SwingDnD.java:249)
>>>>>>> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
>>>>>>> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
>>>>>>> at java.awt.EventQueue.access$400(EventQueue.java:97)
>>>>>>> at java.awt.EventQueue$3.run(EventQueue.java:697)
>>>>>>> at java.awt.EventQueue$3.run(EventQueue.java:691)
>>>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> java.security.ProtectionDomain$1.doIntersectionPrivilege(
>>>>> ProtectionDomain.java:75)
>>>>>
>>>>>
>>>>>> at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
>>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> org.netbeans.core.TimableEventQueue.dispatchEvent(
>>>>> TimableEventQueue.java:159)
>>>>>
>>>>>
>>>>>> [catch] at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> java.awt.EventDispatchThread.pumpOneEventForFilters(
>>>>> EventDispatchThread.java:201)
>>>>>
>>>>>
>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> java.awt.EventDispatchThread.pumpEventsForFilter(
>>>>> EventDispatchThread.java:116)
>>>>>
>>>>>
>>>>>> at
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> java.awt.EventDispatchThread.pumpEventsForHierarchy(
>>>>> EventDispatchThread.java:105)
>>>>>
>>>>>
>>>>>> at
>>>>>>>
>>>>>>>
>>>>>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>>>>>
>>>>>
>>>>>> at java.awt.EventDispatchThread.pumpEvents(
>>>>>>> EventDispatchThread.java:93)
>>>>>>> at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
>>>>>>>
>>>>>>> --
>>>>>>> Sven Reimers
>>>>>>>
>>>>>>> * Senior Expert Software Architect
>>>>>>> * NetBeans Dream Team Member: http://dreamteam.netbeans.org
>>>>>>> * Community Leader NetBeans: http://community.java.net/netbeans
>>>>>>> Desktop Java:
>>>>>>> http://community.java.net/javadesktop
>>>>>>> * JUG Leader JUG Bodensee: http://www.jug-bodensee.de
>>>>>>> * Duke's Choice Award Winner 2009
>>>>>>> * Blog: https://www.java.net//blog/sven
>>>>>>>
>>>>>>> * XING: https://www.xing.com/profile/Sven_Reimers8
>>>>>>> * LinkedIn: http://www.linkedin.com/in/svenreimers
>>>>>>>
>>>>>>> Join the NetBeans Groups:
>>>>>>> * XING: http://www.xing.com/group-20148.82db20
>>>>>>> * NUGM: http://haug-server.dyndns.org/display/NUGM/Home
>>>>>>> * LinkedIn: http://www.linkedin.com/groups?gid=1860468
>>>>>>> http://www.linkedin.com/groups?gid=107402
>>>>>>> http://www.linkedin.com/groups?gid=1684717
>>>>>>> * Oracle: https://mix.oracle.com/groups/18497
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sven Reimers
>>>>>>
>>>>>> * Senior Expert Software Architect
>>>>>> * NetBeans Dream Team Member: http://dreamteam.netbeans.org
>>>>>> * Community Leader NetBeans: http://community.java.net/netbeans
>>>>>> Desktop Java:
>>>>>> http://community.java.net/javadesktop
>>>>>> * JUG Leader JUG Bodensee: http://www.jug-bodensee.de
>>>>>> * Duke's Choice Award Winner 2009
>>>>>> * Blog: https://www.java.net//blog/sven
>>>>>>
>>>>>> * XING: https://www.xing.com/profile/Sven_Reimers8
>>>>>> * LinkedIn: http://www.linkedin.com/in/svenreimers
>>>>>>
>>>>>> Join the NetBeans Groups:
>>>>>> * XING: http://www.xing.com/group-20148.82db20
>>>>>> * NUGM: http://haug-server.dyndns.org/display/NUGM/Home
>>>>>> * LinkedIn: http://www.linkedin.com/groups?gid=1860468
>>>>>> http://www.linkedin.com/groups?gid=107402
>>>>>> http://www.linkedin.com/groups?gid=1684717
>>>>>> * Oracle: https://mix.oracle.com/groups/18497
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
More information about the openjfx-dev
mailing list