【发布时间】:2020-02-22 12:20:45
【问题描述】:
我在 GridTable 查看器中添加了 DragListener,在 nat 表中添加了 DropListener,但是当我选择任何行网格查看器并将其拖放到 nat table 时;选定的数据没有被删除 下面附上代码sn-p
在 GridTableViewer 中拖动源监听器
Transfer[] transferTypes = new Transfer[] { LocalSelectionTransfer.getTransfer() };
this.gridTableViewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE, transferTypes, new DragSourceListener() {
@Override
public void dragStart(final DragSourceEvent event) {
System.out.println(transferTypes);
event.doit = !ShowListDialog.this.gridTableViewer.getStructuredSelection().isEmpty();
}
@Override
public void dragSetData(final DragSourceEvent event) {
if(LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
LocalSelectionTransfer.getTransfer()
.setSelection(ShowListDialog.this.gridTableViewer.getStructuredSelection());
LocalSelectionTransfer.getTransfer().setSelectionSetTime(event.time & 0xFFFF);
}
}
@Override
public void dragFinished(final DragSourceEvent dragsourceevent) {
// LocalSelectionTransfer.getTransfer().setSelection(null);
// LocalSelectionTransfer.getTransfer().setSelectionSetTime(0);
}
});
NatTable 中的 DropTargetListener
Transfer[] transferTypes = new Transfer[] { LocalSelectionTransfer.getTransfer() };
this.natTable.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, transferTypes, new DropTargetListener() {
@Override
public void dragEnter(final DropTargetEvent event) {
event.detail = DND.DROP_COPY | DND.DROP_MOVE;
event.currentDataType = event.dataTypes[0];
}
@Override
public void dragOperationChanged(final DropTargetEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void dragOver(final DropTargetEvent event) {
event.detail = DND.DROP_COPY | DND.DROP_MOVE;
}
@Override
public void drop(final DropTargetEvent event) {
StructuredSelection structuredSelection = (StructuredSelection) event.data;
final Object selectedElement = structuredSelection.getFirstElement();
// for (Object selectedElement : structuredSelection.toList()) {
if (selectedElement instanceof String) {
}
}
@Override
public void dropAccept(final DropTargetEvent event) {
}
@Override
public void dragLeave(final DropTargetEvent droptargetevent) {
// TODO Auto-generated method stub
}
});
【问题讨论】:
标签: java eclipse-rcp nattable