SceneBuilder Integration in NetBeans

Petr Pchelko petr.pchelko at oracle.com
Mon Mar 17 10:11:54 UTC 2014


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