2012-07-19 83 views
0

我需要以編程方式創建一些首選項頁面。它的工作原理一切,當我觸發首次下面的代碼如預期:Eclipse:以編程方式創建首選項

IPreferencePage page = new NewPreferencePage(test); 
    page.setTitle("First Title"); 

    PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager(); 
    PreferenceNode node = new PreferenceNode("node." + nodeName, page); 
    pm.addToRoot(node); 

    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow() 
      .getShell(); 

    PreferenceDialog pd = new PreferenceDialog(shell, pm); 
    pd.setPreferenceStore(Activator.getDefault().getPreferenceStore()); 

    pd.create(); 
    pd.open(); 

問題是,當我嘗試從標準模式(窗口 - >首選項)訪問的喜好發生了錯誤,並且我創建的節點爲空。 此外,當我觸發2+代碼的這段代碼時,會創建一個新節點,並且前一個在首選項列表中顯示爲空行。

任何人都有一些教程或一些詳細的信息,描述如何以編程方式創建此。我在網上搜索並嘗試了不同的方式,但沒有成功。

或者如果有人知道如何在菜單被觸發時更改標準PreferenceDialog,我可以嘗試另一種解決方案。

這個問題是類似的這個: Eclipse: create preference page programmatically, 但我無法解決它。

感謝

回答

0

我有同樣的問題,我在我的偏好頁面重寫getPreferenceStore()soved它和它的作品。請參閱下面的代碼:

@Override 
public IPreferenceStore getPreferenceStore() { 
    return MarkerPlugin.getDefault().getPreferenceStore(); 
} 
+0

感謝您的回答。它在我的情況下不起作用。我首次將PreferenceNode添加到PreferenceManager。但下一次打開PreferencesDialog時,該節點仍爲空。 – Safime 2012-07-23 11:15:16

相關問題