[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool AbstractTool.java, 1.121, 1.122
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2007-06-01 10:49:35
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11913/src/net/sourceforge/bprocessor/gl/tool Modified Files: AbstractTool.java Log Message: Small improvement of the time based delay in drag in tools Index: AbstractTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractTool.java,v retrieving revision 1.121 retrieving revision 1.122 diff -C2 -d -r1.121 -r1.122 *** AbstractTool.java 16 May 2007 07:37:56 -0000 1.121 --- AbstractTool.java 1 Jun 2007 10:49:33 -0000 1.122 *************** *** 38,41 **** --- 38,43 ---- import java.awt.Point; import java.awt.Toolkit; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; *************** *** 53,56 **** --- 55,59 ---- import java.util.Collection; import java.util.Stack; + import javax.swing.Timer; import org.apache.log4j.Logger; *************** *** 82,85 **** --- 85,92 ---- private Transform id; + private MouseEvent parked; + + private Timer dragtimer; + /** The minimum drag time */ private static final int MIN_DRAG_TIME_MS = 200; *************** *** 191,194 **** --- 198,211 ---- } + private class DragAction implements ActionListener { + public void actionPerformed(ActionEvent e) { + if (parked != null) { + dragged(parked); + parked = null; + glv.repaint(true); + } + } + } + /** * Getter for cursor *************** *** 359,362 **** --- 376,380 ---- */ public void mouseDragged(MouseEvent e) { + parked = null; int x = e.getX(); int y = e.getY(); *************** *** 373,376 **** --- 391,400 ---- if (e.getWhen() > pressedTime + MIN_DRAG_TIME_MS) { dragged(e); + } else { + parked = e; + int delay = (int) (MIN_DRAG_TIME_MS - (e.getWhen() - pressedTime)); + dragtimer = new Timer(delay, new DragAction()); + dragtimer.setRepeats(false); + dragtimer.start(); } } *************** *** 386,389 **** --- 410,414 ---- */ public void mouseMoved(MouseEvent e) { + parked = null; int x = e.getX(); int y = e.getY(); *************** *** 424,427 **** --- 449,453 ---- */ public void mousePressed(MouseEvent e) { + parked = null; pressedTime = e.getWhen(); pressPos[0] = e.getX(); *************** *** 464,467 **** --- 490,494 ---- */ public void mouseReleased(MouseEvent e) { + parked = null; if (e.getButton() == MouseEvent.BUTTON2) { glv.setCursor(cursor); |