I have a Eclipse plugin that uses a view which extends ViewPart
. ViewPart
has a saveState
method which requires an IMemento
.
I added my code to saveState
and the corresponding init
method and it works. Unfortunately, saveState
is only called if the entire workspace is shutting down. My view is not of such great importance that I can expect it to be opened the entire time. Hence, it would be cool if saveState
would be called on view closure.
I found a view-part listener as mean to react on view closure, but what I do not get is where the IMemento
comes from. Where do I get the memento object that is used on workspace closure? Or where do I have to store my own memento object to make the view part use it in the init
method if the view is (re)opened?
@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());
}
This is my saveState
- can I tell my view somehow tell to call it every time the view closes?