使用 Link 打开其他首选项页面
Opening other preference page with Link
我正在尝试 link 从我的定制页面转到另一个偏好页面。
我有一个 FieldEditorPreferencePage
,并制作了一个扩展 FieldEditor
的自定义 LinkFieldEditor
,因此我可以将其添加到首选项页面。
LinkFieldEditor linkField = new LinkFieldEditor("Click here for more options!", getFieldEditorParent());
SelectionAdapter adapter = new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn(getShell(), HTML_PREF_ID, null, null);
if (pref != null) {
pref.open();
}
}
};
linkField.addSelectionListener(adapter);
return linkField;
我正在尝试 link 到 Web -> HTML Files -> Editor
。 HTML_PREF_ID is "org.eclipse.wst.html.core"
。我使用此 ID 以编程方式更改其首选项,因此我知道它是一个有效的 ID。但是当我点击 link 时没有任何反应。我调试了它,PreferenceDialog pref
不为空。
您指定给 createPreferenceDialogOn
的 ID 是使用 org.eclipse.ui.preferencePages
扩展点声明的首选项页面的 ID,不是 首选项商店 ID。
对于 HTML 编辑器页面,此 ID 为 org.eclipse.wst.html.ui.preferences.source
注意:您不需要调用 open
。由于您已经打开了首选项,因此调用 createPreferenceDialogOn
应该只切换到当前选择的首选项页面。
我正在尝试 link 从我的定制页面转到另一个偏好页面。
我有一个 FieldEditorPreferencePage
,并制作了一个扩展 FieldEditor
的自定义 LinkFieldEditor
,因此我可以将其添加到首选项页面。
LinkFieldEditor linkField = new LinkFieldEditor("Click here for more options!", getFieldEditorParent());
SelectionAdapter adapter = new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn(getShell(), HTML_PREF_ID, null, null);
if (pref != null) {
pref.open();
}
}
};
linkField.addSelectionListener(adapter);
return linkField;
我正在尝试 link 到 Web -> HTML Files -> Editor
。 HTML_PREF_ID is "org.eclipse.wst.html.core"
。我使用此 ID 以编程方式更改其首选项,因此我知道它是一个有效的 ID。但是当我点击 link 时没有任何反应。我调试了它,PreferenceDialog pref
不为空。
您指定给 createPreferenceDialogOn
的 ID 是使用 org.eclipse.ui.preferencePages
扩展点声明的首选项页面的 ID,不是 首选项商店 ID。
对于 HTML 编辑器页面,此 ID 为 org.eclipse.wst.html.ui.preferences.source
注意:您不需要调用 open
。由于您已经打开了首选项,因此调用 createPreferenceDialogOn
应该只切换到当前选择的首选项页面。