package org.incha.ui.stats; import java.awt.Desktop; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.IOException; import java.util.List; import java.util.Timer; import java.util.TimerTask; import javax.swing.SwingUtilities; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.JavaModelException; import org.incha.core.JavaProject; import org.incha.core.jswingripples.eig.JSwingRipplesEIGNode; import org.incha.ui.classview.ClassTreeView; public class HierarchicalView extends ClassTreeView { private static final long serialVersionUID = -725916023414871313L; /** * Default constructor. */ public HierarchicalView(final JavaProject project, final List<JSwingRipplesEIGNode> nodes) { super(project); setData(nodes); addMouseListener(new MouseAdapter() { /* (non-Javadoc) * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent) */ @Override public void mouseClicked(final MouseEvent e) { if (SwingUtilities.isRightMouseButton(e)) { showPopupMenu(e.getX(), e.getY()); } else if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) { final ICompilationUnit unit = getSelectedItem(e.getX(), e.getY()).getNodeIMember().getCompilationUnit(); final File fileToOpen = new File(unit.getPath().toString()); try { Desktop.getDesktop().open(fileToOpen); } catch (IOException e1) { e1.printStackTrace(); } } } }); } /** * @param x x mouse coordinate. * @param y y mouse coordinate. */ protected void showPopupMenu(final int x, final int y) { final JSwingRipplesEIGNode node = getSelectedItem(x, y); if (node != null) { ICActionsManager.getInstance().showMenuForNode(node, x, y, this); } } }