ECLIPSE RCP app:工具栏实现

时间:2011-08-31 23:31:39

标签: eclipse toolbar rcp tableviewer

我有一个带有自定义工具栏的视图,其中包含第一条记录,下一条记录,上一条记录等按钮。 我想实现这个功能。我有工具栏按钮的命令对象。如何传递有关表查看器中当前行的哪一行的信息?如果我选择工具栏上的下一个记录按钮,如何将焦点移动到下一条记录?

2 个答案:

答案 0 :(得分:0)

访问当前行:

int currentSelectionPosition=tableViewer.getTable().getSelectionIndex();

在下一行设置选择

tableViewer.getTable().select(currentSelectionPosition+1);

答案 1 :(得分:0)

首先,您必须确保TableViewer是您视图的选择提供者:

getSite().setSelectionProvider(tableViewer);

每次表中选定的行发生更改时,都会通知工作台窗口的选择服务。选择包含与所选行对应的模型对象。

在命令处理程序中,您可以通过调用

来获取当前选择
HandlerUtil.getCurrentSelectionChecked(executionEvent)

要在按下下一个按钮时在TableViewer中移动焦点,您必须在视图中实现一个公共方法,将基础Table的选择索引增加一。要使命令处理程序能够调用此方法,您需要获取视图的实例。一个快速而肮脏的解决方案是通过调用

来获取当前部分
HandlerUtil.getActivePartChecked(executionEvent)

并将返回的IWorkbenchPart投射到您的视图类。