我目前使用的几个用户可配置选项多用户/地点RCP应用程序。 有些选项是用于具体到车站,有些是特定于用户。
这些选项是从偏好店节省了* .prefs文件“workspace.metadata.plugins \ org.eclipse.core.runtime.settings”。
这如果我们只用一台机器/用户被罚款。 但是,如果用户到另一个站,那么用户将使用任何的优先选择是设置了该站。
是否可以指定其他形式的持久性(而不是文件)?
我目前使用的几个用户可配置选项多用户/地点RCP应用程序。 有些选项是用于具体到车站,有些是特定于用户。
这些选项是从偏好店节省了* .prefs文件“workspace.metadata.plugins \ org.eclipse.core.runtime.settings”。
这如果我们只用一台机器/用户被罚款。 但是,如果用户到另一个站,那么用户将使用任何的优先选择是设置了该站。
是否可以指定其他形式的持久性(而不是文件)?
这听起来像你需要存储在一个中心位置,所有用户/机器可以达到你的喜好。 这意味着你要实现自己的IPersistentPreferencesStore
。 然后你就可以覆盖org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
来使用它。
更大的问题是如何实现中央喜好店,但是这取决于你所使用的技术。 在一般情况下,如果你的项目使用中央服务器,你应该有存储您的偏好。 例如,如果你的项目已经使用关系数据库,一个解决办法是建立相应的数据库表和实施IPersistentPreferencesStore
通过JDBC访问这些表。
根据对日食维基 ,偏好是基于文件的,并保存:
<eclipse_home>/eclipse/configuration/.settings/
。 .prefs
扩展。 <workspace>/.metadata/.plugin/org.eclipse.core.runtime/.settings
。 .prefs
扩展。 .settings
项目文件夹中的子目录 因此,如果文件选项是在这里留下来,你可能需要:
HKEY_CURRENT_USER/Software/MyRCP/...
在应用程序的退出),和 .prefs
在本地文件workspace.metadata.plugins\org.eclipse.core.runtime.settings
目录 你应该阅读有关多用户安装
在我们的例子中,我们通过设置的config.ini包括以下分离从应用程序配置每个用户的喜好:
osgi.instance.area=@user.home/Application Data/earthrise
osgi.configuration.area=@user.home/Local Settings/Application Data/earthrise/144/configuration
osgi.sharedConfiguration.area=c:/program files/earthrise/configuration
osgi.configuration.cascaded=true
这样做的结果是,由用户设置的偏好设置保存在他们的漫游配置文件,但是应用程序特定的配置数据存储在本地设置。
这并不解决具有特定于特定工作站的用户偏好的问题,但允许有每个用户有自己的喜好。
跟这个有美中不足的是,Eclipse的错误日志文件将被存储在实例区域并获得他们的漫游配置文件随身携带 - 不是你想真的是。 您可以在插件围绕此代码。 看到日食的Bugzilla的解决办法 - 搜索256502
只是一个想法!
由于PreferenceStore的负载()方法:
public void load() throws IOException {
FileInputStream in = new FileInputStream(filename);
load(in);
in.close();
}
你可以创建一个PreferenceStore
PreferenceStore(String filename)
或者设置文件名
public void setFilename(String name) {
filename = name;
}
你也许可以“砍”的文件名来一些地方共享服务器(或共享个人文件夹可能是用户)...