У меня есть плагин Eclipse, который использует представление, которое расширяет ViewPart
.У ViewPart
есть метод saveState
, который требует IMemento
.
. Я добавил свой код к saveState
и соответствующий метод init
, и он работает.К сожалению, saveState
вызывается только в том случае, если все рабочее пространство закрывается.Мой взгляд не так важен, что я могу ожидать, что он будет открыт все время.Следовательно, было бы здорово, если бы saveState
был вызван при закрытии вида.
Я нашел слушателя части представления как средство реагирования на закрытие вида, но я не понимаю, где IMemento
происходит от.Где взять объект памятки, который используется при закрытии рабочего пространства?Или где я должен хранить свой собственный объект memento, чтобы заставить часть представления использовать его в методе 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
- можетЯ говорю своему представлению, как-то сказать, чтобы вызывать его каждый раз, когда представление закрывается?