/* * @(#)MouseDragGestureRecognizer.java 1.14 03/12/19 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.awt.dnd; import java.awt.Component; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; /** * This abstract subclass of DragGestureRecognizer * defines a DragGestureRecognizer * for mouse-based gestures. * * Each platform implements its own concrete subclass of this class, * available via the Toolkit.createDragGestureRecognizer() method, * to encapsulate * the recognition of the platform dependent mouse gesture(s) that initiate * a Drag and Drop operation. *

* Mouse drag gesture recognizers should honor the * drag gesture motion threshold, available through * {@link DragSource#getDragThreshold}. * A drag gesture should be recognized only when the distance * in either the horizontal or vertical direction between * the location of the latest mouse dragged event and the * location of the corresponding mouse button pressed event * is greater than the drag gesture motion threshold. *

* Drag gesture recognizers created with * {@link DragSource#createDefaultDragGestureRecognizer} * follow this convention. * * @author Laurence P. G. Cable * @version 1.14 * * @see java.awt.dnd.DragGestureListener * @see java.awt.dnd.DragGestureEvent * @see java.awt.dnd.DragSource */ public abstract class MouseDragGestureRecognizer extends DragGestureRecognizer implements MouseListener, MouseMotionListener { private static final long serialVersionUID = 6220099344182281120L; /** * Construct a new MouseDragGestureRecognizer * given the DragSource for the * Component c, the Component * to observe, the action(s) * permitted for this drag operation, and * the DragGestureListener to * notify when a drag gesture is detected. *

* @param ds The DragSource for the Component c * @param c The Component to observe * @param act The actions permitted for this Drag * @param dgl The DragGestureListener to notify when a gesture is detected * */ protected MouseDragGestureRecognizer(DragSource ds, Component c, int act, DragGestureListener dgl) { super(ds, c, act, dgl); } /** * Construct a new MouseDragGestureRecognizer * given the DragSource for * the Component c, * the Component to observe, and the action(s) * permitted for this drag operation. *

* @param ds The DragSource for the Component c * @param c The Component to observe * @param act The actions permitted for this drag */ protected MouseDragGestureRecognizer(DragSource ds, Component c, int act) { this(ds, c, act, null); } /** * Construct a new MouseDragGestureRecognizer * given the DragSource for the * Component c, and the * Component to observe. *

* @param ds The DragSource for the Component c * @param c The Component to observe */ protected MouseDragGestureRecognizer(DragSource ds, Component c) { this(ds, c, DnDConstants.ACTION_NONE); } /** * Construct a new MouseDragGestureRecognizer * given the DragSource for the Component. *

* @param ds The DragSource for the Component */ protected MouseDragGestureRecognizer(DragSource ds) { this(ds, null); } /** * register this DragGestureRecognizer's Listeners with the Component */ protected void registerListeners() { component.addMouseListener(this); component.addMouseMotionListener(this); } /** * unregister this DragGestureRecognizer's Listeners with the Component * * subclasses must override this method */ protected void unregisterListeners() { component.removeMouseListener(this); component.removeMouseMotionListener(this); } /** * Invoked when the mouse has been clicked on a component. *

* @param e the MouseEvent */ public void mouseClicked(MouseEvent e) { } /** * Invoked when a mouse button has been * pressed on a Component. *

* @param e the MouseEvent */ public void mousePressed(MouseEvent e) { } /** * Invoked when a mouse button has been released on a component. *

* @param e the MouseEvent */ public void mouseReleased(MouseEvent e) { } /** * Invoked when the mouse enters a component. *

* @param e the MouseEvent */ public void mouseEntered(MouseEvent e) { } /** * Invoked when the mouse exits a component. *

* @param e the MouseEvent */ public void mouseExited(MouseEvent e) { } /** * Invoked when a mouse button is pressed on a component. *

* @param e the MouseEvent */ public void mouseDragged(MouseEvent e) { } /** * Invoked when the mouse button has been moved on a component * (with no buttons no down). *

* @param e the MouseEvent */ public void mouseMoved(MouseEvent e) { } }