/** * Javier Abell�n, 24 Mayo 2006 * Clase que se suscribe a los movimientos de rat�n y lleva las coordenadas * por las que se va arrastrando, avisando al InterfaceArrastrarRaton * correspondiente. */ package gafetes.modules.sign; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; /** * Clase que se suscribe a los movimientos de rat�n y lleva las coordenadas por * las que se va arrastrando, avisando al InterfaceArrastrarRaton * correspondiente. * Implementa MouseMotionListener para que la pueda a�adir como * addMouseMotionListener() de un Component java. * * @author javaapplication4 */ public class ListenerArrastre implements MouseMotionListener { /** Clase encargada de hacer algo con el arrastre del rat�n */ private InterfaceArrastrarRaton accion; /** Construye una instancia de esta clase y se guarda la accion que se le * pasa. * @param accion Clase a la que se ir� avisando del arrastre del rat�n. */ public ListenerArrastre(InterfaceArrastrarRaton accion) { this.accion = accion; } /** Si actualmente se est� arrastrando o no el rat�n */ boolean arrastrando = false; /** x del rat�n antes de producirse el �ltimo arrastre */ int xAntigua; /** y del rat�n antes de producirse el �ltimo arrastre */ int yAntigua; /** * Se mueve el rat�n sin arrastre. Se marca como que no se est� arrastrando */ public void mouseMoved(MouseEvent e) { if (arrastrando == true) accion.finalizaArrastra(xAntigua, yAntigua); arrastrando = false; xAntigua = e.getX(); yAntigua = e.getY(); } /** * Se est� arrastrando el rat�n. Se avisa a la accion correspondiente y * se actualizan todas las coordenadas. */ public void mouseDragged(MouseEvent e) { if (arrastrando == false) { accion.comienzaArrastra(e.getX(), e.getY()); arrastrando = true; } accion.arrastra(xAntigua, yAntigua, e.getX(), e.getY()); xAntigua = e.getX(); yAntigua = e.getY(); } /** * Permite cambiar la acci�n a realizar cuando se arrastre el rat�n. * @param accion La nueva acci�n a realizar. */ public void setAccion(InterfaceArrastrarRaton accion) { this.accion = accion; } }