背景
我正在为uDig开发插件,uDig是基于Eclipse RCP构建的项目。我的插件包含一个表,该表中填充了Workbench选择中的数据。用户可以对表数据进行分组,排序和过滤。当工作台选择更改组时,将重置排序和过滤器信息,并将新的选择数据加载到表中。
题
如何将值保存到他的工作台,以便以后可以访问它们?
当工作台选择更改时,我希望保存该组,将状态排序并过滤到工作台,以便如果工作台选择曾经变回已保存的选择,我可以恢复状态。
研究
我看过IViewPart.saveState(IMemento memento),但感觉只有在添加和删除视图时,此功能才有用。
我也看过使用首选项,但是觉得这是对资源的不正确使用。
IEclipsePreferences node = InstanceScope.INSTANCE.getNode(PluginUI.PLUGIN_ID);
node.put(key, value);
最后
我是Eclipse RCP的新手,可能以错误的方式攻击了此问题。如果有更好的方法来保存和加载此信息,请随时分享。
最佳答案
从您的描述看来,您似乎已经有了表格的视图。课本保存视图状态的方法是通过IMemento
。您可以在此presentation中看到使用此接口的代码。或者,您也可以使用IPreferenceStore
。
当状态具有全局作用域时,通常使用首选项;当视图特定于视图时,则通常使用备忘录。