我有一個Eclipse插件,它使用延伸爲ViewPart
的視圖。 ViewPart
有一個saveState
方法,它需要一個IMemento
。Eclipse在視圖上調用ViewPart saveState視圖關閉
我將我的代碼添加到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方法 – 2012-02-27 21:34:48