Eclipse plugin Eclipse:在一个插件中,如何访问另一个插件首选项存储?
我有一个Eclipse插件,在插件的首选项页面中有一个复选框。 此复选框用于启用和禁用从该插件启动的编辑器 但是,问题是,我还希望能够通过更改上述首选项页面中复选框的值的操作,从另一个插件启用和禁用此“编辑器启动” 问题是,如何从另一个插件访问本地首选项存储 我试过像Eclipse plugin Eclipse:在一个插件中,如何访问另一个插件首选项存储?,eclipse-plugin,Eclipse Plugin,我有一个Eclipse插件,在插件的首选项页面中有一个复选框。 此复选框用于启用和禁用从该插件启动的编辑器 但是,问题是,我还希望能够通过更改上述首选项页面中复选框的值的操作,从另一个插件启用和禁用此“编辑器启动” 问题是,如何从另一个插件访问本地首选项存储 我试过像 View myView = (View) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("ViewID"); 但是这个
View myView = (View) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView("ViewID");
但是这个“myView
”看起来总是空的。。还有,既然视图是我想要的插件,我该怎么处理它呢
Platform.getBundle('bundleName')...
这里也是一样,想要插件,而不是对应于is的包
无论我尝试什么,似乎都不管用。有人有什么想法吗?这就是服务跟踪器的使用:
ServiceTracker tracker = new ServiceTracker(ToolkitPlugin.getDefault().getBundle().getBundleContext(),
IProxyService.class.getName(), null);
tracker.open();
proxyService = (IProxyService) tracker.getService();
proxyService.addProxyChangeListener(this);
这可能行得通
每个插件都可以找到Prefs存储。这是为activator类为ActivatorA的插件获取prefs存储的一种方法
IPreferenceStore=ActivatorA.getDefault().getPreferenceStore()
如果你想让另一个插件引用同一个商店,也许你可以在ActivatorA上公开一些api,让它达到目的,例如
公共IPreferenceStore getSharedPrefs(){
返回ActivatorA.getDefault().getPreferenceStore();
}
第二个插件将通过这样做找到共享存储
IPreferenceStore sharedPrefs=ActivatorA.getSharedPrefs()
祝你好运。或者看看这个答案:有两种方法:
TestPlugin.getDefault().getPluginPreferences().getDefaultBoolean(TestPlugin.PREF_TEST);
TestPlugin.getDefault().getPluginPreferences().getDefaultBoolean(TestPlugin.PREF_TEST);