2012-06-20 45 views
1

在我的Eclipse 3.7 RCP應用程序中,我得到的PreferenceStore如下: Activator.getDefault().getPreferenceStore()返回IPreferenceStore。 這裏使用Activator自己的偏好存儲。Eclipse RCP - ScopedPreferenceStore限定符。如何使用默認的首選項存儲?

現在我想用一個ScopedPreferenceStore的實例,它也是IPreferenceStore
現在通過在構造函數ScopedPreferenceStore(IScopeContext context, String qualifier)中傳遞一個插件ID作爲限定符參數,可以明確設置首選存儲節點musst。

例子:
ScopedPreferenceStore(ConfigurationScope.INSTANCE, "com.example.myplugin.id")

問:
我怎樣才能激活自己的喜好存儲預選賽?換句話說,我如何創建一個ScopedPreferenceStore,其中存儲了Activator自己的偏好存儲中的偏好設置?

+0

你問的是如何讓你的插件的偏好存儲沒有去激活? –

+0

我沒有看到,默認情況下激活器有一個靜態屬性'PLUGIN_ID'。這就是我一直在尋找的! – Skip

回答

2

如果你想爲你的包相當於首選項存儲,而無需訪問激活本身,你會用你所列舉的相同的模式:

preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, "your.bundle.id"); 

編輯:查找軟件包ID

當eclipse自動生成捆綁激活器時,它會創建一個包含捆綁ID的靜態字段。但是如果你沒有激活器,你仍然可以檢索你的捆綁ID。您可以使用FrameworkUtil從任何一個類獲取Bundle對象。

import org.osgi.framework.Bundle; 
import org.osgi.framework.FrameworkUtil; 

final Bundle bundle = FrameworkUtil.getBundle(PrintIdHandler.class); 
System.out.println(bundle.getSymbolicName()); 
+0

我只是搜索一個訪問bundleID的可能性,而不用明確寫下它。默認激活器生成存儲該ID的字段「PLUGIN_ID」。 – Skip

相關問題