Search code examples
javadrag-and-dropeclipse-rcptransfer

Transfer Items between Views with Drag-and-Drop in Eclipse RCP?


I have 2 views in my application. In one of the views I can see a TreeStructure containing custom defined elements (such as MDocument, MVersion...).

I would like to be able to drag items of type MVersion from my view to the other one but I don't know how to declare the transfer types or to check if the item selected is a supported type.

Any ideas?


Solution

  • The easiest way is to use LocalSelectionTransfer. Once you have added drag/drop support to your viewers...

    You set the ISelection that is dragged in DragSourceListener.dragStart() method:

    LocalSelectionTransfer.getTransfer().setSelection(selection);
    

    In the DropTargetListener.drop() you check if the type is supported and retrieve the selection:

    if (LocalSelectionTransfer.getTransfer().isSupportedType(event.currentDataType))
        ISelection sel = LocalSelectionTransfer.getTransfer().getSelection();
        ...