ホーム > タグ > TreeViewer

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.  });

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

Home > Tags > TreeViewer

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








DMM.com 家電・日用品通販

Return to page top