1
/*******************************************************************************
2
* Copyright (c) 2009 Red Hat, Inc.
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v1.0
5
* which accompanies this distribution, and is available at
6
* http://www.eclipse.org/legal/epl-v10.html
9
* Red Hat - initial API and implementation
10
*******************************************************************************/
11
package org.eclipse.linuxtools.internal.callgraph.treeviewer;
13
import java.util.Iterator;
15
import org.eclipse.jface.viewers.DoubleClickEvent;
16
import org.eclipse.jface.viewers.IDoubleClickListener;
17
import org.eclipse.jface.viewers.IStructuredSelection;
18
import org.eclipse.jface.viewers.TreeViewer;
19
import org.eclipse.linuxtools.internal.callgraph.StapData;
20
import org.eclipse.linuxtools.internal.callgraph.StapGraph;
22
public class StapTreeDoubleClickListener implements IDoubleClickListener {
24
private StapGraph graph;
25
private TreeViewer viewer;
27
public StapTreeDoubleClickListener(TreeViewer t , StapGraph g) {
33
public void doubleClick(DoubleClickEvent event) {
34
if (!(event.getSelection() instanceof IStructuredSelection))
36
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
37
if (selection.size() != 1) return;
40
//Expand the current node in the tree viewer and on the graph
41
for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
42
StapData data = (StapData) iterator.next();
43
viewer.collapseToLevel(data, 1);
44
viewer.expandToLevel(data, 1);
45
graph.setCollapseMode(true);
47
graph.getNode(data.id).unhighlight();