以编程方式从 Eclipse 的“项目属性”对话框中选择一个节点

Programmatically selecting a node from the Project properties dialog in Eclipse

我正在开发一个 Eclipse 插件,它向项目添加了 2 属性 个页面。

第二个属性页面是属性第1页的子页面。基本上,如果有人展开属性第1页节点,那么属性第2页就会显示.

在 属性 第 1 页中,有一个名为 "Advanced settings" 的按钮,单击该按钮时应打开并将焦点设置到 属性 第 2 页。

如何以编程方式执行相同的操作?

使用 PreferencesUtil.createPropertyDialogOn 方法,例如:

PreferencesUtil.createPropertyDialogOn(
 Display.getCurrent().getActiveShell(), proj,<page_id>, null, null).open();

您可以查看 javadoc 以了解 createPropertyDialogOn here.

的其他重载方法

没有从 属性 页面中 select 另一个 属性 页面的指定方式。

您唯一的机会是将容器投射到 FilteredPreferenceDialog。此 class 有一个 public 方法来更改当前显示的页面。例如:

IPreferencePageContainer container = getContainer();
FilteredPreferenceDialog dialog = ( FilteredPreferenceDialog )container;
dialog.setCurrentPageId( "page-id" );

此解决方法的缺点是 FilteredPreferenceDialog 是内部 class。