在eclipse rcp应用程序中存储会话数据

时间:2013-12-21 18:20:40

标签: eclipse-rcp

使用IPreferenceStore正确的方法来存储用于绘制视图的几个经常访问的java对象吗?我想为我的RCP应用程序提供类似“自定义应用程序缓存”的东西

1 个答案:

答案 0 :(得分:3)

IPreferenceStore用于存储首选项!通常情况下,您只会在此处存储将出现在首选项页面上的内容 - 尽管没有任何内容可以强制执行此操作。

对于更常规的存储空间,使用Platform.getStateLocation(bundle)获取工作区.metadata中的位置,您的插件可以在其中存储所需的任何信息:

Bundle bundle = Platform.getBundle("your-plugin-id");

IPath stateLocPath = Platform.getStateLocation(bundle);

stateLocPath将是一个目录(通常是workspace-path/.metadata/.plugins/your-plugin-id)。您的插件可以管理存储在此目录中的文件。

如果您不需要跨会话持久保存对象,则可以使用普通的Java结构(如列表或地图)作为插件Activator中的字段。