【发布时间】:2012-03-17 08:30:31
【问题描述】:
我有一个 Eclipse 插件,它使用扩展 ViewPart 的视图。 ViewPart 有一个 saveState 方法,它需要一个 IMemento。
我将我的代码添加到 saveState 和相应的 init 方法中,它可以工作。不幸的是,saveState 仅在整个工作区关闭时才被调用。我的观点并不是那么重要,以至于我可以期望它一直被打开。因此,如果在视图关闭时调用 saveState 会很酷。
我发现一个视图部分侦听器意味着对视图关闭做出反应,但我没有得到IMemento 的来源。我在哪里可以获得用于工作区关闭的纪念品对象?或者如果视图被(重新)打开,我必须在哪里存储我自己的纪念品对象以使视图部分在init 方法中使用它?
@Override
public void saveState(IMemento memento) {
super.saveState(memento);
memento = memento.createChild(MEMENTO_GUI_STATE);
memento.putBoolean(MEMENTO_IS_FLAT, !isHierarchicalModeActive());
memento.putBoolean(MEMENTO_IS_CATEGORY_MODE_ACTIVE, comboViewer.isVisible());
}
这是我的saveState - 我可以告诉我的视图以某种方式告诉每次视图关闭时调用它吗?
【问题讨论】:
-
能否请您提供您的 saveState 方法
标签: eclipse-plugin savestate memento