swt - java - 如何在java RCP的jface表中拖放多行?
问题描述
这里, 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();
但它给了我选定的行。我想要鼠标选择的指针。
解决方案
考虑到您正在使用表格查看器。
在丢弃处理程序中:
1)从 TableViewer 获取模型对象:tableViewer.getInput()
2) 从dropTarget
对象中找到要添加拖放对象的对象位置。然后在该位置的模型中插入新对象并刷新tableviewer
推荐阅读
- selenium - 如何使用 selenium 从页面的一行获取值并在其他页面中提供相同的值?
- r - 如何在语料库元数据中将月/日/年字符对象格式更改为日期?
- java - 我想做一些计算并将值传递给另一个 Activity 上的 TextView
- python - 使用客户端库列出具有 Google Big Query ML Python API 的数据集的机器学习模型
- .net - 如何在 Visual Studio 2019 中将 .NET Framework 4.7.2 项目迁移到 .NET Core 3.0
- python - Python Pandas:输出到excel“.xls”电子表格,只需覆盖选定的工作表
- three.js - 纹理几何在照明更新时丢失图像
- python - Python/Pydantic - 使用带有 json 对象的列表
- intellij-idea - 有没有办法以独立于大小写(然而,各自)的方式选择和编辑下一个事件?
- java - 如何在java中的变量中使用大数进行算术运算而不会出现异常