/*
* Scute
*
* Homepage: http://hyperdata.org/scute
*
* License : http://www.apache.org/licenses/LICENSE-2.0
* See also license.txt or http://hyperdata.org/wiki/Scute:License
*
* Danny Ayers 2011
*/
package org.hyperdata.scute.tree;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.Action;
import javax.swing.JTree;
import javax.swing.tree.TreePath;
/**
* Picks up mouse events on the RDF tree view.
*
* @see TreeMouseEvent
*/
public class TreeMouseListener extends MouseAdapter {
/** The tree. */
private JTree tree;
/** The tree panel. */
private final RdfTreeCard treePanel;
/**
* Instantiates a new tree mouse listener.
*
* @param treePanel
* the tree panel
*/
public TreeMouseListener(RdfTreeCard treePanel) {
tree = treePanel.getTree();
this.treePanel = treePanel;
// m_action = treePanel.getAction();
// m_popup=treePanel.getPopupMenu();
}
/**
* Gets the tree.
*
* @return the tree
*/
public JTree getTree() {
return tree;
}
/**
* Constructor for TreeMouseListener.
*
* @param e
* the e
*/
@Override
public void mousePressed(MouseEvent e) {
// nothing needed yet
}
/* (non-Javadoc)
* @see java.awt.event.MouseAdapter#mouseReleased(java.awt.event.MouseEvent)
*/
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
final int x = e.getX();
final int y = e.getY();
System.out.println("x = " + x + " y = " + y);
final TreePath path = tree.getPathForLocation(x, y);
if (path != null) {
if (tree.isExpanded(path)) {
treePanel.getAction().putValue(Action.NAME, "Collapse");
} else {
treePanel.getAction().putValue(Action.NAME, "Expand");
}
treePanel.getPopupMenu().show(tree, x, y);
treePanel.setClickedPath(path);
}
}
}
/**
* Sets the tree.
*
* @param tree
* the new tree
*/
public void setTree(JTree tree) {
this.tree = tree;
}
}