/** * Copyright (C) 1998-2000 by University of Maryland, College Park, MD 20742, USA * All rights reserved. */ package edu.umd.cs.piccolox.pswing; import edu.umd.cs.piccolo.event.PInputEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; /** * <b>PMouseMotionEvent</b> is an event which indicates that a mouse motion * action occurred in a node. * <p> * This low-level event is generated by a node object for: * <ul> * <li>Mouse Motion Events * <ul> * <li>the mouse is moved * <li>the mouse is dragged * </ul> * </ul> * </p> * <p> * A PMouseEvent object is passed to every <code>PMouseMotionListener</code> or * <code>PMouseMotionAdapter</code> object which registered to receive mouse * motion events using the component's <code>addMouseMotionListener</code> * method. (<code>PMouseMotionAdapter</code> objects implement the * <code>PMouseMotionListener</code> interface.) Each such listener object gets * a <code>PMouseEvent</code> containing the mouse motion event. * </p> * <p> * <b>Warning:</b> Serialized objects of this class will not be compatible with * future Piccolo releases. The current serialization support is appropriate for * short term storage or RMI between applications running the same version of * Piccolo. A future release of Piccolo will provide support for long term * persistence. * </p> * * @author Benjamin B. Bederson * @author Sam R. Reid * @author Lance E. Good */ public class PSwingMouseMotionEvent extends PSwingMouseEvent { /** * Constructs a new PMouse event from a Java MouseEvent. * * @param id The event type (MOUSE_MOVED, MOUSE_DRAGGED) * @param e The original Java mouse event when in MOUSE_DRAGGED events. */ protected PSwingMouseMotionEvent(int id, MouseEvent e, PInputEvent event) { super(id, e, event); } /** * Calls appropriate method on the listener based on this events ID. * * @param listener the target for dispatch. */ public void dispatchTo(Object listener) { MouseMotionListener mouseMotionListener = (MouseMotionListener) listener; switch (getID()) { case PSwingMouseEvent.MOUSE_DRAGGED: mouseMotionListener.mouseDragged(this); break; case PSwingMouseEvent.MOUSE_MOVED: mouseMotionListener.mouseMoved(this); break; default: throw new RuntimeException("PMouseMotionEvent with bad ID"); } } }