java - 如何在 Eclipse RCP 应用程序中设置首选项的默认值

标签 java eclipse-plugin eclipse-rcp

我有一个 RCP 应用程序,当 RCP 作为应用程序运行时,我需要在首选项页面中将一些值设置为默认值。我需要从某个特定的角度隐藏快速查看栏和一些菜单,这就是我需要从首选项页面设置这些设置的原因。

我的应用程序还不是产品,所以我不能使用 plugin_customization.ini 文件来改变它。

谁能告诉我一种通过首选项页面或任何其他方式以编程方式更改默认值的方法?

最佳答案

为您的首选项页面 和该页面的initializer 类定义扩展点:

示例首选项页面实现可能如下所示:

public class MyPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
    public static final String PREF_USE_METRIC_UNITS = "PREF_USE_METRIC_UNITS";
    public static final String PREF_AUTO_UPDATE = "PREF_AUTO_UPDATE";
    public static final String PREF_USER_FILES_DIR = "PREF_USER_FILES_DIR";
    public static final String PREF_FAVORITE_ANIMAL = "PREF_FAVORITE_ANIMAL";

    public MyPreferencePage() {
        super(GRID);
    }

    public void createFieldEditors() {
        Composite parent = getFieldEditorParent();
        addField(new BooleanFieldEditor(PREF_USE_METRIC_UNITS, "Use &metric units", parent));
        addField(new BooleanFieldEditor(PREF_AUTO_UPDATE, "&Auto update", parent));

        addField(new DirectoryFieldEditor(PREF_USER_FILES_DIR, "User files &path:", parent));

        addField(new StringFieldEditor(PREF_FAVORITE_ANIMAL, "Favorite &animal:", parent));
    }

    public void init(IWorkbench workbench) {
        setPreferenceStore(Plugin.getPlugin().getPreferenceStore());
    }
}

然后在 AbstractPreferenceInitializer 类中设置实际的默认值:

public class MyPreferenceInitializer extends AbstractPreferenceInitializer {
    @Override
    public void initializeDefaultPreferences() {
        IPreferenceStore store = Plugin.getPlugin().getPreferenceStore();

        store.setDefault(MyPreferencePage.PREF_USE_METRIC_UNITS, true);
        store.setDefault(MyPreferencePage.PREF_AUTO_UPDATE, false);

        String userHome = System.getProperty("user.home");
        String defaultPath = userHome + "\\Local Settings\\Temp\\";
        store.setDefault(MyPreferencePage.PREF_USER_FILES_DIR, defaultPath);

        store.setDefault(MyPreferencePage.PREF_FAVORITE_ANIMAL, "platypus");
    }
}

关于java - 如何在 Eclipse RCP 应用程序中设置首选项的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758480/

相关文章:

java - 无法将 Eclipse RCP 应用程序导出为产品

java - 快速 Java 形状操作

eclipse - 组织插件测试的夹具首选项

eclipse - 如何在 Eclipse 中查找键绑定(bind)的命令 ID?

java - 从比较编辑器获取文档

java - 如何使用 ICompilationUnit 获取类中的所有注释

java - 使用@PathVariable将参数传递给Spring Controller

java - 如何在groovy中打印特殊字符

java - Java 中创建字符串的时间

eclipse - 以编程方式将库添加到 Eclipse 项目