我想从 tableViewer 中拖动文本,放到 a 上TreeViewer
,然后将拖动的文本填充到选定的树项中。拖放源和放置目标已设置。第一个遇到的问题是 is 的项目DropTargetEvent
,null
所以我不知道哪个树项目文本被拖放到。
Drop 目标的 drop 方法代码如下:
public void drop(DropTargetEvent event) {
System.out.println("Droped" + event);
if (event.data == null) {
event.detail = DND.DROP_NONE;
}
//TreeItem item = (TreeItem) event.item;
Tree xmlTree = xmlVisualEditor.getTree(); //to get the target tree
Point selectedPoint = new Point(event.x, event.y);
TreeItem item = xmlTree.getItem(selectedPoint); #<----- Null pointer exception
if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
String dropedData = (String) event.data;
System.out.println("Dropped Data:" + dropedData);
item.setText(dropedData);
}
}
我打印了放置目标事件的内容,它显示为:
DropTargetEvent{DropTarget {} time=141201730 data=students-name x=861 y=393 item=null operations=3 operation=1 feedback=1 dataTypes={ 13 1 } currentDataType=13}
可以看出,item 是null
。
关于下一步要做的,我需要
获取它被丢弃的树项。
将拖动的文本填充到删除的树项的一列中
欢迎任何关于接近解决方案的评论。非常感谢。