在此,setIdList是学生ID的列表。我想将这些ID添加到表中。 这些id在dragSetData()方法中设置。 我可以通过拖放到表中来访问ID列表。但这是在表的最后添加。 我希望它在鼠标指针选择的任何行之间添加此列表。 拖动代码...
private void addDragSupport()
{
int operations = DND.DROP_COPY | DND.DROP_MOVE;
Transfer[] transferTypes = new Transfer[] { TextTransfer.getInstance() };
viewer.addDragSupport(operations, transferTypes, new DragSourceListener()
{
@Override
public void dragStart(DragSourceEvent event) {
event.doit = false;
if (null != myVariable) {
if (myVariable instanceof StudentDetails) {
event.doit = true;
}
}
}
@Override
public void dragSetData(DragSourceEvent event) {
event.data = setIdList;
}
@Override
public void dragFinished(DragSourceEvent event) {
}
});
}
我在下面的投放代码中尝试过
IStructuredSelection structuredSelection = this.getStructuredSelection();
List<StudentDetails> studentDetailList = structuredSelection.toList();
但是它给了我选定的行。我要用鼠标选择指针。
答案 0 :(得分:2)
考虑到您正在使用表格查看器。
在放置处理程序中:
1)从TableViewer获取模型对象:tableViewer.getInput()
2)从dropTarget
对象中找到要添加放置的对象的对象位置。
然后在该位置的模型中插入新对象并刷新tableviewer