如何select一个treeview节点像点击鼠标一样更新属性视图

How to select a treeview node like a click of mouse to update properties view

我的 Eclipse 插件中有一个自定义大纲,使用 class TreeViewer 实现,我使用以下代码创建了这个大纲:

public class MyOutlinePage extends ContentOutlinePage
(...)
            Object[] data = (...)
            TreeViewer treeViewer = getTreeViewer();
            treeViewer.setInput(data);

设置输入后,我需要select大纲中的一个特定元素。 例如,我需要select大纲中的元素data[2]

我正在尝试使用此代码来 select 大纲元素:

treeViewer.setSelection(new StructuredSelection(data[2]));

如果我使用鼠标 select 大纲项目,大纲被 select 编辑并且 "Properties Views" 被更新。大纲项目 selected 如下所示:

但是如果我 select 使用方法 setSelection 的大纲项目 "Properties Views" 未更新并且大纲项目 select 编辑如下所示:

我需要使用代码 select 勾勒项目,这个 selection 必须像鼠标点击一样更新 "Properties View"。

灰色突出显示大纲视图不是活动部分。属性视图始终显示活动部分的值。

您可以通过以下方式激活大纲视图:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

page.showView(IPageLayout.ID_OUTLINE, null, IWorkbenchPage.VIEW_ACTIVATE);

但请注意,这会将焦点从当前活动的任何部分移开。