package org.basex.gui.layout; import java.awt.Window; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JTree; import javax.swing.SwingUtilities; import javax.swing.border.*; import javax.swing.tree.DefaultMutableTreeNode; /** * Project specific tree implementation. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public class BaseXTree extends JTree { /** * Constructor. * @param root root node * @param w window reference */ public BaseXTree(final DefaultMutableTreeNode root, final Window w) { super(root); BaseXLayout.addInteraction(this, w); addMouseListener(new MouseAdapter() { @Override public void mousePressed(final MouseEvent e) { if(SwingUtilities.isRightMouseButton(e)) setSelectionRow(getClosestRowForLocation(e.getX(), e.getY())); } }); } /** * Sets the label borders. * @param t top distance * @param l left distance * @param b bottom distance * @param r right distance * @return self reference */ public BaseXTree border(final int t, final int l, final int b, final int r) { setBorder(new EmptyBorder(t, l, b, r)); return this; } }