在Eclipse中以编程方式选择资源不会扩展树

时间:2017-07-04 10:20:07

标签: java eclipse rcp

我的RCP Eclipse应用程序存在以下问题:我正在尝试在Project Explorer树中的IResource上设置选择。 我正在使用的代码是:

final IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
final IViewPart viewPart = page.findView(IPageLayout.ID_PROJECT_EXPLORER);
final ISelectionProvider selProvider = viewPart.getSite().getSelectionProvider();
selProvider.setSelection(new StructuredSelection(mrcReportRuleOccurrence.getIResource()));

代码似乎只有在树已经在树中展开时才有效。如果树完全折叠,则代码不会使eclipse展开包含文件夹并在项目资源管理器中选择所需的文件。有谁知道如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Viewer方法检查选择提供者是否为setSelection(selection. reveal)

if (selProvider instanceof Viewer) {
  ((Viewer)selProvider).setSelection(selection, true);
}

可能还需要使用TreeSelection TreePath进行选择,而不仅仅是StructuredSelection

TreePath path = new TreePath(.... array of objects ...);

TreeSelection selection = new TreeSelection(path);

'对象数组'是通过树到资源的路径。

但是,在不同视图的树中选择项目不是ISelectionProvider接口的用途。无法保证可以使用此界面完成此操作。