- 2008-10-12 (日) 18:24
- 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) {
- // 開くときによばれる
- }
- });
ユーザの操作だけではなく、内部でツリーを制御するタイミングでもコールされるようなので、データを操作するときは注意しておきましょう。
- Newer: TracのチケットとSubversionの連携
- Older: Eclipseプラグイン開発:F5でリフレッシュ
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.magellanic.net/archives/40/trackback
- Listed below are links to weblogs that reference
- Eclipseプラグイン開発:TreeViewerの状態管理 from Olen Onnellinen 2


