初始化同一视图的多个drop支持

时间:2018-06-18 13:43:47

标签: java swt

如何在一个视图中使用两种不同的drop支持,具有不同的传输类型?

    int srcOps = DND.DROP_MOVE | DND.DROP_COPY;
    Transfer[] dragDropTransfers = new Transfer[] { myTransferType1.getInstance() };
    this.getTreeViewer().addDragSupport(srcOps, dragDropTransfers, new OverviewDragSourceAdapter(this));
    this.getTreeViewer().addDropSupport(srcOps, dragDropTransfers, new OverviewDropAdapter(this));
    dragDropTransfers = new Transfer[] { myTransferType2.getInstance() };
    this.getTreeViewer().addDropSupport(srcOps, dragDropTransfers, new AddDropAdapter(this));

它给org.eclipse.swt.SWTError:无法初始化Drop。

1 个答案:

答案 0 :(得分:0)

内部addDropSupport使用DropTargetDropTarget的JavaDoc说:

  

ERROR_CANNOT_INIT_DROP-无法启动放置目标;这将   如果为控件创建了多个放置目标,或者如果   操作系统将不允许创建放置目标

因此,您不能使用多次调用addDropTarget。您将必须编写一个DropTargetListener