Re: Drag & Drop from Project View into (JavaFX) Editor
Dmitry Avtonomov <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Message-ID | <CAMMjtf-W0JD_vjkewTQCacwkNwbbWb8XXpq7WQhRbf9rBvxYcg@mail.gmail.com> |
Maybe you should install a custom TransferHandler into your top component?
Here's where you should start, I think:
https://docs.oracle.com/javase/tutorial/uiswing/dnd/transferhandler.html
I'm trying to enable drag & drop for files from the project view to an
editor window. More specifically to a JavaFX TableView.
Even though drag detection seems to work correctly (cursor changes), when I
drop it, I don't get notified and I get this exception:
> java.awt.datatransfer.UnsupportedFlavorException: Unicode String
> at
org.openide.util.datatransfer.ExTransferable.getTransferData(ExTransferable.java:152)
> at
sun.awt.dnd.SunDropTargetContextPeer.getTransferData(SunDropTargetContextPeer.java:241)
> ....
My Code:
Code:
componentTable.setOnDragOver((event) -> {
if (event.getGestureSource() != componentTable
&& event.getDragboard().hasFiles()) {
event.acceptTransferModes(TransferMode.LINK);
}
event.consume();
});
componentTable.setOnDragEntered((event) -> {
if (event.getGestureSource() != componentTable
&& event.getDragboard().hasFiles()) {
//todo
}
event.consume();
});
componentTable.setOnDragExited((event) -> {
//todo
event.consume();
});
componentTable.setOnDragDropped((event) -> {
Dragboard db = event.getDragboard();
boolean success = false;
if (db.hasFiles()) {
//todo
success = true;
}
event.setDropCompleted(success);
event.consume();
});