2015-04-27 119 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

因此,您的編輯必須聽取此屬性更改並執行更新所需的任何操作。 –