我有一个CommonNavigator
,其BaseWorkbenchContentProvider
实现IMementoAware
。因此,当应用程序关闭并启动时,我能够保存和恢复导航器的数据。到目前为止它已经足够了,但现在我已经实现了导航器数据的一些功能,而且我已经意识到即使在加载导航器插件之前我也需要访问数据< / em>(即在导航器视图变为活动状态之前)。
因此,我需要更改方法并需要在应用程序启动时加载数据,将其显示在导航器中并在应用程序关闭时最终保存。我在哪里可以存储数据,以便从任何地方访问?到目前为止,我已经在导航器的内容提供程序中恢复了IMemento
,但问题是数据是在导航器视图初始化后才加载的。从应用程序的启动中加载和访问数据的正确方法是什么?
谢谢!
答案 0 :(得分:2)
您可以使用以下命令获取可以存储任意数据的位置的路径:
IPath path = Platform.getStateLocation(plugin bundle);
您可以从传递给插件激活器的Bundle
获取插件BundleContext
或致电:
Bundle bundle = Platform.getBundle("plugin id");
返回的状态位置将位于工作区.metadata/.plugins
目录中。
您可以根据需要编写代码以从此位置加载和保存值。