SceneBuilder Integration in NetBeans
Kevin Rushforth
kevin.rushforth at oracle.com
Mon Mar 17 12:10:13 UTC 2014
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