有什么方法可以从网格表查看器中拖放到nat表中吗?>

问题描述 投票:-2回答:1

我在GridTable查看器中添加了DragListener,在nat表中添加了DropListener,但是当我选择任何行网格查看器并将其放置在nat表中时;所选数据没有丢失代码片段附在下面

在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

      }
    });

我在GridTable查看器中添加了DragListener,在nat表中添加了DropListener,但是当我选择任何行网格查看器并将其放置在nat表中时;所选数据没有丢失附加了代码段...

java eclipse-rcp nattable
1个回答
0
投票

LocalSelectionTransfer的Javadoc以某种方式进行了解释:

© www.soinside.com 2019 - 2024. All rights reserved.