我正在尝试将菜单中的操作添加到TableViewer的标题(标题)。
这是我现在使用的代码:
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL
| SWT.FULL_SELECTION | SWT.BORDER);
//...
MenuManager manager = new MenuManager();
viewer.getControl().setMenu(manager.createContextMenu(viewer.getControl()));
manager.add(new Action("MENU ITEM TEXT") {
@Override
public void run() {
// get the current selection of the tableviewer
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
// do something
if (selection.getFirstElement() instanceof MyObject)
return;
System.out.println("OK: "+selection.getFirstElement().getClass().getName());
}
});
这就是它的样子:
问题是菜单会添加到整个TableViewer,而不仅仅是标题行。
因为对于其他行,我需要使用不同的菜单。
我试图找到一种方法只将动作添加到顶行(标题行),但到目前为止没有成功。
那么如何才能为标题添加菜单呢?
答案 0 :(得分:1)
您在表格中添加MouseListener
,然后检查以下内容:
TableItem
- 您将使用table.getItem(Point)
)。如果满足这些条件,则在鼠标位置打开菜单。
答案 1 :(得分:1)
实际上,here是一个如何做到这一点的片段。