を拡張するビューを使用する Eclipse プラグインがありますViewPart
。ViewPart
を必要とするsaveState
メソッドがありますIMemento
。
コードをsaveState
対応するinit
メソッドに追加したところ、機能しました。残念ながら、saveState
ワークスペース全体がシャットダウンしている場合にのみ呼び出されます。私の見解はそれほど重要ではないので、常に開かれていると期待できます。したがって、saveState
ビューを閉じるときに呼び出されると便利です。
ビューの閉鎖に反応する手段としてビューパーツリスナーを見つけましたが、得られないのはどこからIMemento
来たのかです。ワークスペースの閉鎖で使用される memento オブジェクトはどこで取得できますか? init
または、ビューが (再) 開かれた場合にビュー部分がメソッドでそれを使用するようにするには、独自の memento オブジェクトをどこに保存する必要がありますか?
@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
- ビューが閉じるたびにそれを呼び出すようにビューに伝えることはできますか?