我有一个使用扩展视图的 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
- 我可以告诉我的视图以某种方式告诉每次视图关闭时调用它吗?