Home > Eclipse > Eclipseプラグイン開発:TreeViewerの状態管理

Eclipseプラグイン開発:TreeViewerの状態管理

TreeViewerのメモ。

ツリーの展開状況の取得と設定

ツリーの状態を保存しておくにはTreeViewer#getExpandedElements()を使います。

  1.  // 取得する
  2.  Object[] expandedNodes = viewer.getExpandedElements();
  3.  
  4.  // なんか処理して
  5.  
  6.  // 設定する
  7.  viewer.setExpandedElements(expandedNodes);

TreeViewerのときは取得できるObjectはTreeNodeオブジェクトです。
TreeNodeはコンストラクタでObjectを引数に取り、このObjectのequalsによってTreeNodeの同位性も決まります。

ツリーの開閉時に実行されるリスナーの設定

TreeListenerなるものをviewerに設定しておきます。
ここで気をつけるのはイベントの各メソッドが呼ばれた時点ではツリーの状態は開いていない(閉じていない)ということです。
例えば、treeExpanded内でTreeViewer#getExpandedElements()をコールするとトリガとなったノードは取得できません。TreeExpansionEvent#getElement()で取得します。

  1.  viewer.addTreeListener(new ITreeViewerListener() {
  2.      @Override
  3.      public void treeCollapsed(TreeExpansionEvent event) {
  4.          // 閉じるによばれる
  5.      }
  6.      @Override
  7.      public void treeExpanded(TreeExpansionEvent event) {
  8.          // 開くときによばれる
  9.      }
  10.  });

ユーザの操作だけではなく、内部でツリーを制御するタイミングでもコールされるようなので、データを操作するときは注意しておきましょう。

Comments:0

Comment Form
Remember personal info

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

Home > Eclipse > Eclipseプラグイン開発:TreeViewerの状態管理

Search
Feeds
Link
あわせて読みたいブログパーツ
Meta
AD








DMM.com 家電・日用品通販

Return to page top