在我的Eclipse 3.7 RCP应用程序中,我得到的PreferenceStore如下:
Activator.getDefault().getPreferenceStore()返回一个IPreferenceStore
这里使用了激活器自己的首选项存储。

现在,我想使用ScopedPreferenceStore的实例,该实例也是IPreferenceStore。现在,通过在构造函数ScopedPreferenceStore(IScopeContext context, String qualifier)中传递plugin-id作为限定符参数来显式设置首选项存储节点。

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

题:
如何获得Activator自己的首选项存储限定符?换句话说,我如何创建一个ScopedPreferenceStore来将首选项存储在Activator自己的首选项存储中?

最佳答案

如果要在不访问Activator本身的情况下获取捆绑包的等效首选项存储,则可以使用列出的相同模式:

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());

10-05 21:15