さてツリーに対するアクションはどのように処理すればよいでしょうか。ツリーに関するイベントとしては、
SelectionChangeEventの場合、getSelection()メソッドでISelectionオブジェクトが取得できますが、実際にはIStructuredSelectionを実装していますので、これにキャストします。IStructuredSelectionには選択されたノードに対応するノードの実体(ここでの例の場合はDOMのNodeオブジェクト)のコレクションが含まれていますので、
ISelection selection = event.getSelection();
if (selection instanceof IStructuredSelection) {
IStructuredSelection structuredSelection =
(IStructuredSelection) selection;
Iterator iter = structuredSelection.iterator();
while (iter.hasNext()) {
Object object = iter.next();
if (object instanceof Node) {
Node node = (Node) object;
// nodeは選択されたノードの一つになる。
}
}
}
によって選択されたノードに対して処理を行うことができます。DoubleClickEventも同様(ただしこのイベントは特定の1ノードが選択された状態で発生しますが)です。
TreeExpansionEventはgetElement()メソッドで開いた(閉じた)ノードに対応するコンテンツのオブジェクト(ここではDOMのNode)を取得することができます。