2015-04-27 118 views
0

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

public class MyPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { 
    public MyPreferencePage() { 
     super(GRID); 
    } 

    public void createFieldEditors() { 
     addField(new StringFieldEditor(PreferenceConstants.MY_CONF, 
      "Label", getFieldEditorParent())); 
    } 

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

    @Override 
    public boolean performOk() { 
     boolean res = super.performOk(); 
     // Validated input 
     // I think I have to refresh the config here 
     return res; 
    } 
} 
+0

更改什么类型的属性?使用什么API? –

+0

我通过IWorkbenchPreferencePage更改插件属性。 –

+0

那么你是否将值存储在插件首选项中?向我们显示保存该值的代码。 –

回答

0

您可以将监听器添加到您的偏好商店将采用被告知更改的偏好:

MyEditorPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(listener); 

其中listenerorg.eclipse.jface.util.IPropertyChangeListener的实现。此界面中的单一方法是

public void propertyChange(PropertyChangeEvent event) 
{ 
    String changedPropertyId = event.getProperty(); 

    // TODO check if you need to do something for the changed property 
} 
+0

这不是我的问题。我的问题是,在我改变属性后,当前用我的编辑器打开的所有文件仍旧处于旧状态。 –

+0

因此,您的编辑必须听取此属性更改并执行更新所需的任何操作。 –