为同一视图初始化多拖放支持
initializing multiple drop support for the same view
如何在具有不同传输类型的一个视图中使用两种不同的拖放支持?
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。
内部 addDropSupport
使用 DropTarget
。 DropTarget
的 JavaDoc 说:
ERROR_CANNOT_INIT_DROP - unable to initiate drop target; this will
occur if more than one drop target is created for a control or if the
operating system will not allow the creation of the drop target
因此您不能多次调用 addDropSupport
。你将不得不写一个 DropTargetListener
如何在具有不同传输类型的一个视图中使用两种不同的拖放支持?
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。
内部 addDropSupport
使用 DropTarget
。 DropTarget
的 JavaDoc 说:
ERROR_CANNOT_INIT_DROP - unable to initiate drop target; this will occur if more than one drop target is created for a control or if the operating system will not allow the creation of the drop target
因此您不能多次调用 addDropSupport
。你将不得不写一个 DropTargetListener