gpt4 book ai didi

eclipse-rcp - 在我的 Eclipse RCP 中不会调用实现 AbstractPreferenceInitializer

转载 作者:行者123 更新时间:2023-12-01 11:51:30 34 4
gpt4 key购买 nike

我想使用 Eclipse 机制在我的 RCP 应用程序中设置默认首选项。因此,我扩展了 AbstractPreferenceInitializer 类来设置我的默认首选项:

public class PreferenceInitializer extends AbstractPreferenceInitializer {
@Override
public void initializeDefaultPreferences() {
IPreferenceStore preferenceStore = PlatformUI.getPreferenceStore();
preferenceStore.setDefault("xyz", xyz);
preferenceStore.setDefault("abc", false);
}
}

然后我定义了扩展点:

<extension point="org.eclipse.core.runtime.preferences">
<initializer class="com.abc.PreferenceInitializer">
</initializer>
</extension>

但不幸的是,初始化程序不会在启动期间被调用(而 Eclipse 的 WorkbenchPreferenceInitializer 将被调用)。

有人可以给我一个提示,告诉我该怎么做才能运行吗?

最佳答案

在需要这些默认值之前,您的首选项初始化代码不会被调用(而不是在应用程序启动时,我猜这是您的期望)。

如果您自己有一个首选项页面,其中包含一些使用您的首选项名称的 FieldEditors,当您转到“首选项”对话框并选择该首选项页面时,您的首选项初始值设定项将被调用。

类似的东西:

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));
}

}

当然,还有页面的扩展点:

<extension point="org.eclipse.ui.preferencePages">
<page
class="whatever.package.MyPreferencePage"
id="whatever.package.MyPreferencePage"
name="MyPrefs">
</page>
</extension>

关于eclipse-rcp - 在我的 Eclipse RCP 中不会调用实现 AbstractPreferenceInitializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11046158/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com