ホーム > タグ > TreeViewer
TreeViewer
Eclipseプラグイン開発:TreeViewerの状態管理
- 2008-10-12 (日)
- Eclipse
|
TreeViewerのメモ。
ツリーの展開状況の取得と設定
ツリーの状態を保存しておくにはTreeViewer#getExpandedElements()を使います。
- // 取得する
- Object[] expandedNodes = viewer.getExpandedElements();
- // なんか処理して
- // 設定する
- viewer.setExpandedElements(expandedNodes);
TreeViewerのときは取得できるObjectはTreeNodeオブジェクトです。
TreeNodeはコンストラクタでObjectを引数に取り、このObjectのequalsによってTreeNodeの同位性も決まります。
ツリーの開閉時に実行されるリスナーの設定
TreeListenerなるものをviewerに設定しておきます。
ここで気をつけるのはイベントの各メソッドが呼ばれた時点ではツリーの状態は開いていない(閉じていない)ということです。
例えば、treeExpanded内でTreeViewer#getExpandedElements()をコールするとトリガとなったノードは取得できません。TreeExpansionEvent#getElement()で取得します。
- viewer.addTreeListener(new ITreeViewerListener() {
- @Override
- public void treeCollapsed(TreeExpansionEvent event) {
- // 閉じるによばれる
- }
- @Override
- public void treeExpanded(TreeExpansionEvent event) {
- // 開くときによばれる
- }
- });
ユーザの操作だけではなく、内部でツリーを制御するタイミングでもコールされるようなので、データを操作するときは注意しておきましょう。
- Comments: 0
- Trackbacks: 0
Home > Tags > TreeViewer


