[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl GLMouseListener.java,1.1.1.1,1.2
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2005-07-18 10:45:51
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv982 Modified Files: GLMouseListener.java Log Message: added reaction on mouse drag and movement Index: GLMouseListener.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/GLMouseListener.java,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** GLMouseListener.java 14 Jul 2005 09:49:59 -0000 1.1.1.1 --- GLMouseListener.java 18 Jul 2005 10:45:38 -0000 1.2 *************** *** 7,14 **** package net.sourceforge.bprocessor.gl; import java.awt.event.MouseEvent; ! import java.awt.event.MouseListener; ! ! import net.java.games.jogl.GLCanvas; import org.apache.log4j.Logger; --- 7,15 ---- package net.sourceforge.bprocessor.gl; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; import java.awt.event.MouseEvent; ! import javax.swing.Timer; ! import javax.swing.event.MouseInputListener; import org.apache.log4j.Logger; *************** *** 17,21 **** * The mouse listener */ ! public class GLMouseListener implements MouseListener { /** The logger */ private static Logger log = Logger.getLogger(GLMouseListener.class); --- 18,22 ---- * The mouse listener */ ! public class GLMouseListener implements MouseInputListener { /** The logger */ private static Logger log = Logger.getLogger(GLMouseListener.class); *************** *** 24,36 **** private int prevButton; ! /** The 3D canvas*/ ! private GLCanvas glc = null; /** * Constructor ! * @param glc the GL canvas */ ! public GLMouseListener(GLCanvas glc) { ! this.glc = glc; } --- 25,72 ---- private int prevButton; ! /** The mouse position last time the mouse was pressed initializes to (0,0) */ ! private int[] pressPos = new int[2]; ! ! /** The mouse movement in x axis since press */ ! private int dx = 0; ! ! /** The mouse movement in y axis since press */ ! private int dy = 0; ! ! /** The GLView obejct*/ ! private GLView glv = null; ! ! /** The carmera move timer */ ! private Timer timer; /** * Constructor ! * @param glv the GL canvas */ ! public GLMouseListener(GLView glv) { ! this.glv = glv; ! timer = new Timer(10, new CameraMove(this, glv)); ! } ! ! /** ! * Invoked when a mouse button is held down while moving the mouse ! * @param e The MouseEvent object ! */ ! public void mouseDragged(MouseEvent e) { ! if (e.getButton() == MouseEvent.BUTTON1) { ! // ! } else if (e.getButton() == MouseEvent.BUTTON3) { ! this.dx = pressPos[0] - e.getX(); ! this.dy = pressPos[1] - e.getY(); ! } ! glv.repaint(); ! } ! ! /** ! * Invoked when the mouse cursor has been moved ! * @param e The MouseEvent object ! */ ! public void mouseMoved(MouseEvent e) { ! } *************** *** 62,70 **** public void mousePressed(MouseEvent e) { int currentButton = e.getButton(); if (log.isDebugEnabled()) { log.debug("[mousePressed] " + currentButton); } prevButton = currentButton; ! glc.repaint(); } --- 98,113 ---- public void mousePressed(MouseEvent e) { int currentButton = e.getButton(); + pressPos[0] = e.getX(); + pressPos[1] = e.getY(); if (log.isDebugEnabled()) { log.debug("[mousePressed] " + currentButton); } + if (currentButton == MouseEvent.BUTTON3) { + this.dx = pressPos[0]; + this.dy = pressPos[1]; + timer.start(); + } prevButton = currentButton; ! glv.repaint(); } *************** *** 97,100 **** --- 140,146 ---- } else if (prevButton == MouseEvent.BUTTON3) { if (currentButton == MouseEvent.BUTTON3) { + timer.stop(); + this.dx = 0; + this.dy = 0; if (log.isDebugEnabled()) { log.debug("[mouseReleased] Button3 -> Button3"); *************** *** 109,113 **** } prevButton = currentButton; ! glc.repaint(); } } --- 155,205 ---- } prevButton = currentButton; ! glv.repaint(); ! } ! ! /** ! * @return The x distance the mouse has moved since press ! */ ! protected int getdx() { ! return dx; ! } ! ! /** ! * @return The y distance the mouse has moved since press ! */ ! protected int getdy() { ! return dy; ! } ! ! /** ! * Carama move timer class ! */ ! protected class CameraMove implements ActionListener { ! /** The calling mouselistener */ ! private GLMouseListener glml; ! ! /** The current GLView */ ! private GLView glv; ! ! /** ! * The Constructor ! * @param glml the mouselistener caller ! * @param glv the GLView ! */ ! protected CameraMove(GLMouseListener glml, GLView glv) { ! this.glml = glml; ! this.glv = glv; ! } ! ! /** ! * executed every time camaraMove is sceduled ! * @param e The ActionEvent ! */ ! public void actionPerformed(ActionEvent e) { ! AbstractViewListener avl = glv.getEventListener(); ! avl.translateRotationX(glml.getdy()); ! avl.translateRotationY(glml.getdx()); ! glv.repaint(); ! } } } |