Phi*_*ipp 3 eclipse-rcp preferences
我想使用 Eclipse 机制在我的 RCP 应用程序中设置默认首选项。因此,我扩展了课程AbstractPreferenceInitializer以设置我的默认首选项:
public class PreferenceInitializer extends AbstractPreferenceInitializer {
@Override
public void initializeDefaultPreferences() {
IPreferenceStore preferenceStore = PlatformUI.getPreferenceStore();
preferenceStore.setDefault("xyz", xyz);
preferenceStore.setDefault("abc", false);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我定义了扩展点:
<extension point="org.eclipse.core.runtime.preferences">
<initializer class="com.abc.PreferenceInitializer">
</initializer>
</extension>
Run Code Online (Sandbox Code Playgroud)
但不幸的是,初始化程序不会在启动期间WorkbenchPreferenceInitializer被调用(而 Eclipse将被调用)。
有人可以给我一个提示,该怎么做,才能运行?
直到需要这些默认值(而不是在应用程序启动时,我猜这是您的期望)才会调用您的首选项初始值设定项代码。
如果您有自己的首选项页面,其中包含一些使用您的首选项名称的 FieldEditor,则当您转到“首选项”对话框并选择该首选项页面时,将调用您的首选项初始值设定项。
类似的东西:
public class MyPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public void createFieldEditors() {
Composite parent = getFieldEditorParent();
addField(new StringFieldEditor(Constants.PREFERENCES.FILE_COMPARE_TOOL_LOCATION, "File compare tool location", parent));
addField(new StringFieldEditor("xyz", "XYZ Value", parent));
addField(new BooleanFieldEditor("abc", "Enable the ABC widget", parent));
}
}
Run Code Online (Sandbox Code Playgroud)
当然,还有页面的扩展点:
<extension point="org.eclipse.ui.preferencePages">
<page
class="whatever.package.MyPreferencePage"
id="whatever.package.MyPreferencePage"
name="MyPrefs">
</page>
</extension>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1666 次 |
| 最近记录: |