如何为Eclipse Natures Project保存自定义对象?

时间:2016-09-20 09:23:53

标签: java eclipse eclipse-rcp

我正在开发一个具有自定义项目性质的Eclipse插件。我需要将有关项目的一些自定义信息保存到工作区中。例如,我的项目必须使用多个数据库连接信息,这些信息放在List<DbConfig>中。以下是DbConfig类:

public class DbConfig {
    private String dbName;
    private String connectionString;
    private String username;
    private String password;
    //... getters and setters
}

我需要这样的想法,但是想要放入首选项对象类型:

IProject project =  ... get project from selection or something
IScopeContext context = new ProjectScope(project);
Preferences projectPreferences = context.getNode("your nature id");
projectPreferences.put(key, value);
projectPreferences.flush();

我应该在哪个对象中放置此列表和其他一些首选项?

1 个答案:

答案 0 :(得分:1)

您无法在偏好商店中存储对象。

您可以在“状态位置”保存您喜欢的任何数据。为你的插件。

使用以下方式获取州位置:

Bundle bundle = ... your plugin bundle

IPath path = Platform.getStateLocation(bundle);

返回的IPath值将位于工作区元数据区域中。

您可以为每个项目使用单独的文件。

您可以使用<{1}}获取

Bundle

Bundle bundle = FrameworkUtil.getBundle(getClass());