Index: openide/src/org/openide/explorer/view/TreeViewCellEditor.java =================================================================== RCS file: /cvs/openide/src/org/openide/explorer/view/TreeViewCellEditor.java,v retrieving revision 1.34 diff -u -r1.34 TreeViewCellEditor.java --- openide/src/org/openide/explorer/view/TreeViewCellEditor.java 3 Sep 2002 15:03:43 -0000 1.34 +++ openide/src/org/openide/explorer/view/TreeViewCellEditor.java 20 May 2003 10:53:48 -0000 @@ -32,7 +32,7 @@ * @author Petr Hamernik */ class TreeViewCellEditor extends DefaultTreeCellEditor -implements CellEditorListener, FocusListener { +implements CellEditorListener, FocusListener, MouseMotionListener { /** generated Serialized Version UID */ static final long serialVersionUID = -2171725285964032312L; @@ -217,7 +217,48 @@ void setDnDActive (boolean dndActive) { this.dndActive = dndActive; } + + protected void setTree(JTree newTree) { + if (newTree != tree && timer != null && timer.isRunning()) { + tree.removeMouseMotionListener (this); + } + super.setTree (newTree); + } + public void mouseDragged(MouseEvent e){ + Point p = e.getPoint(); + boolean b = checkContinueTimer (p); + if (!b) abortTimer(); + } + + public void mouseMoved(MouseEvent e){ + Point p = e.getPoint(); + boolean b = checkContinueTimer (p); + if (!b) abortTimer(); + } + + private void abortTimer() { + if (timer != null && timer.isRunning()) { + timer.stop(); + tree.removeMouseMotionListener (this); + } + } + + protected void startEditingTimer() { + tree.addMouseMotionListener (this); + super.startEditingTimer(); + } + + protected void prepareForEditing() { + tree.removeMouseMotionListener (this); + super.prepareForEditing(); + } + + private boolean checkContinueTimer (Point p) { + Rectangle r = tree.getPathBounds(tree.getSelectionPath()); + return (r.contains(p)); + } + /** Redefined default cell editor to convert nodes to name */ static class Ed extends DefaultCellEditor { /** generated Serialized Version UID */