ECLIPSE RCP应用程序:工具栏实现

ECLIPSE RCP应用程序:工具栏实现,eclipse,toolbar,rcp,tableviewer,Eclipse,Toolbar,Rcp,Tableviewer,我有一个带有按钮的自定义工具栏视图,如第一条记录、下一条记录、上一条记录等。 我想实现这个功能。我有工具栏按钮的命令对象。如何在表查看器中传递关于哪一行是当前行的信息?如果选择工具栏上的“下一条记录”按钮,如何将焦点移动到下一条记录?访问当前行: int currentSelectionPosition=tableViewer.getTable().getSelectionIndex(); 在下一行设置所选内容 tableViewer.getTable().select(currentSele

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

访问当前行:

int currentSelectionPosition=tableViewer.getTable().getSelectionIndex();
在下一行设置所选内容

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

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

getSite().setSelectionProvider(tableViewer);
每当表中的选定行发生更改时,这会通知工作台窗口的选择服务。所选内容包含与选定行相对应的模型对象

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

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

HandlerUtil.getActivePartChecked(executionEvent)
并将返回的IWorkbenchPart投射到视图类