属性更改后的Eclipse插件刷新

属性更改后的Eclipse插件刷新,eclipse,eclipse-plugin,Eclipse,Eclipse Plugin,我开发了一个基于GEF的eclipse插件。当我更改属性时,我需要关闭所有文件并手动打开它们。 更改属性后如何刷新插件实例 公共类MyPreferencePage扩展FieldEditorReferencePage实现IWorkbenchReferencePage{ 公共MyPreferencePage(){ 超级电网; } public void createFieldEditors(){ addField(新的StringFieldEditor(PreferenceConstants.MY_

我开发了一个基于GEF的eclipse插件。当我更改属性时,我需要关闭所有文件并手动打开它们。 更改属性后如何刷新插件实例

公共类MyPreferencePage扩展FieldEditorReferencePage实现IWorkbenchReferencePage{
公共MyPreferencePage(){
超级电网;
}
public void createFieldEditors(){
addField(新的StringFieldEditor(PreferenceConstants.MY_CONF,
“标签”,getFieldEditorParent());
}
公共void init(IWorkbench工作台){
setPreferenceStoreMyEditorPlugin.getDefault().getPreferenceStore());
}
@凌驾
公共图书馆{
布尔res=super.performOk();
//有效输入
//我想我必须在这里刷新配置
返回res;
}
}

您可以向首选项存储添加一个侦听器,该侦听器将通过以下方式告知首选项的更改:

MyEditorPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(listener);
其中
listener
org.eclipse.jface.util.IPropertyChangeListener
的实现。此接口中的单个方法是

public void propertyChange(PropertyChangeEvent事件)
{
字符串changedPropertyId=event.getProperty();
//TODO检查是否需要为更改的属性执行某些操作
}

更改什么类型的属性?使用什么API?我通过IWorkbenchPreferencePage更改插件属性。那么您是否将值存储在插件首选项中?向我们展示保存值的代码。这不是我的问题。我的问题是,在我更改属性后,当前使用编辑器打开的所有文件仍处于旧状态。因此,您的编辑器必须侦听此属性更改并执行更新所需的任何操作。