Eclipse rcp EclipseSWT从TreeViewer打开编辑器

Eclipse rcp EclipseSWT从TreeViewer打开编辑器,eclipse-rcp,Eclipse Rcp,在RCP应用程序中,当用户双击TreeViewer中的节点时,我试图打开一个编辑器。当视图包含TableViewer时,我使用的策略是在ExecutionEvent中传递当前状态,并在open editor处理程序中获取选择。当与TreeViewer一起使用时,此策略失败,因为getSelectionProvider()返回null 有没有关于将选择传递给处理程序的建议?或者从树视图打开编辑器的最佳实践 从TableViewer工作 //在视图的双击处理程序中 ICommandService c

在RCP应用程序中,当用户双击TreeViewer中的节点时,我试图打开一个编辑器。当视图包含TableViewer时,我使用的策略是在ExecutionEvent中传递当前状态,并在open editor处理程序中获取选择。当与TreeViewer一起使用时,此策略失败,因为getSelectionProvider()返回null

有没有关于将选择传递给处理程序的建议?或者从树视图打开编辑器的最佳实践

从TableViewer工作

//在视图的双击处理程序中
ICommandService cmdService=(ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
Command cmd=cmdService.getCommand(“com.easa.acmotor.client.eclipse.motorOpenFromView”);
ExecutionEventCmd=new ExecutionEvent(cmd,new HashMap(),此,
((IEvaluationService)PlatformUI.getWorkbench().getService(IEvaluationService.class)).getCurrentState());
试一试{
cmd.executeWithChecks(eventCmd);
}捕获(例外e){
}
//在开放编辑器处理程序中
公共对象执行(ExecutionEvent事件)引发ExecutionException{
IsStructuredSelection=(IsStructuredSelection)HandlerUtil.getActiveSite(事件).getSelectionProvider().getSelection();
//在此处处理所选项目打开每个项目的编辑器
您需要告诉查看(或编辑)站点,您的
TreeViewer
是站点的选择提供者

在ViewPart(或EditorPart)中,使用以下内容:

getSite().setSelectionProvider(treeViewer);

TreeViewer
类实现了
ISelectionProvider
所需的接口。

为什么不直接在双击处理程序中调用
IDE.openEditor
?Greg-这是在RCP应用程序中,而不是在IDE中。我更新了问题以反映此上下文。
IDE
类仍然包含在许多RCP中,美国e
IWorkbenchPage.openEditor
如果没有。如果选择为空,您是否已将树查看器连接到站点选择提供程序?Greg-感谢您提供指向将树查看器连接到站点选择的指针。我错过了这一点配置。如果您输入答案,我会将其标记为已接受。