Java SWT 表格查看器。只允许 Entry 作为 DropTarget

Java SWT TableViewer. Only allow Entry as DropTarget

我最近向我的 SWT TableViewer 添加了拖放功能。这很好用。 我能够将一个元素从源 TableViewer 拖到目标 TableViewer 并且我可以使用它。

现在我的问题来了。我只想能够将一个元素拖到另一个元素上。换句话说,我只想能够将我的元素放在另一个元素上并且 不在两行之间

在图片中你可以看到我的意思。在两行之间拖动时,会显示粗线。我不希望这种情况发生。它应该只突出显示行,并且永远不会出现粗线。

目前我正在使用 validateDrop(...) 所以当我在那里发布时 drop 不起作用,但这不是一个干净的解决方案。

希望你能帮助我。

拖放示例:

假设您使用的放置目标侦听器扩展 ViewerDropAdapter 覆盖 determineLocation 并且始终 return LOCATION_ON:

@Override
protected int determineLocation(DropTargetEvent event)
{
  return LOCATION_ON;
}