我创建了一个命令和一个与文本编辑器交互的处理程序(实现ITextEditor
的对象)。对于处理程序与之交互的每个编辑器,我希望存储处理程序可以访问的一些数据。
这样做的最佳方式是什么?
我的命令修改了活动编辑器的文本选择。执行命令时,我想存储有关上一个选择的信息。另一个命令应该能够读取此信息并恢复之前的选择。
<state>
plugin.xml
标记looked at,但我不明白如何为每个编辑器获取一个状态。但也许有办法?IAction
)?但他们不是一个被命令取代的旧机制吗?IAction
手动设置ITextEditor.setAction
对象作为对堆栈的引用。答案 0 :(得分:1)
如果您使用的是Eclipse 4,则可以使用与MPart
关联的IEditorPart
对象的瞬态数据。
要使用MPart
使用IEditorPart
:
MPart part = editor.getSite().getService(MPart.class);
Map<String, Object> transientData = part.getTransientData();
您可以在瞬态数据中存储您喜欢的任何内容,使用您的处理程序对映射键唯一的键。编辑关闭时,数据将被丢弃。