拥有PreferencePage:设置和获取值 - 永远不会调用storeValues()

时间:2014-11-14 10:27:57

标签: eclipse-plugin eclipse-rcp

我正在为RCP应用程序创建自己的Eclipse PreferencePage。 对于FileFieldEditor,我希望存储该值,稍后在另一个类中获取它。 为此我做了:

private void initializeDefaults() {
    IPreferenceStore store = getPreferenceStore();
    subversionPathEditor.setStringValue(store.getString(FIELD_SUBVERSION_PATH));
}

Activator类实现AbstractUIPlugin,并在PreferencePage的init()方法中设置首选项存储:

public void init(IWorkbench workbench) {
    setPreferenceStore(Activator.getDefault().getPreferenceStore());
}

使用符合的storeValues()方法存储值 Eclipse Documentation

private void storeValues() {
    IPreferenceStore store = Activator.getDefault().getPreferenceStore();
    store.setValue("SUBVERSION_PATH", subversionPathEditor.getStringValue());
}

这就是问题所在:Eclipse告诉我该方法从未被使用过(本地)。 所以该值不能在PreferenceStore中。

我做错了什么?

(告诉我,如果你需要更多代码。)

1 个答案:

答案 0 :(得分:1)

如果您仔细阅读文档页面,则表示在按下“确定”和“应用”时必须调用storeValues方法。

您可以通过覆盖performOk

来执行此操作
@Override
public boolean performOk()
{
  storeValues();

  super.performOk();
}

您也可以覆盖performApply,但默认操作是调用performOk,因此在这种情况下不需要。