如何在一个视图中使用两种不同的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。
答案 0 :(得分:0)
内部addDropSupport
使用DropTarget
。 DropTarget
的JavaDoc说:
ERROR_CANNOT_INIT_DROP-无法启动放置目标;这将 如果为控件创建了多个放置目标,或者如果 操作系统将不允许创建放置目标
因此,您不能使用多次调用addDropTarget
。您将必须编写一个DropTargetListener