我正在为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中。
我做错了什么?
(告诉我,如果你需要更多代码。)
答案 0 :(得分:1)
如果您仔细阅读文档页面,则表示在按下“确定”和“应用”时必须调用storeValues
方法。
您可以通过覆盖performOk
:
@Override
public boolean performOk()
{
storeValues();
super.performOk();
}
您也可以覆盖performApply
,但默认操作是调用performOk
,因此在这种情况下不需要。