| /* |
| * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. Oracle designates this |
| * particular file as subject to the "Classpath" exception as provided |
| * by Oracle in the LICENSE file that accompanied this code. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| */ |
| |
| 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 <code>DragGestureRecognizer</code> |
| * defines a <code>DragGestureRecognizer</code> |
| * 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. |
| * <p> |
| * 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. |
| * <p> |
| * Drag gesture recognizers created with |
| * {@link DragSource#createDefaultDragGestureRecognizer} |
| * follow this convention. |
| * |
| * @author Laurence P. G. Cable |
| * |
| * @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 <code>MouseDragGestureRecognizer</code> |
| * given the <code>DragSource</code> for the |
| * <code>Component</code> c, the <code>Component</code> |
| * to observe, the action(s) |
| * permitted for this drag operation, and |
| * the <code>DragGestureListener</code> to |
| * notify when a drag gesture is detected. |
| * <P> |
| * @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 <code>MouseDragGestureRecognizer</code> |
| * given the <code>DragSource</code> for |
| * the <code>Component</code> c, |
| * the <code>Component</code> to observe, and the action(s) |
| * permitted for this drag operation. |
| * <P> |
| * @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 <code>MouseDragGestureRecognizer</code> |
| * given the <code>DragSource</code> for the |
| * <code>Component</code> c, and the |
| * <code>Component</code> to observe. |
| * <P> |
| * @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 <code>MouseDragGestureRecognizer</code> |
| * given the <code>DragSource</code> for the <code>Component</code>. |
| * <P> |
| * @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. |
| * <P> |
| * @param e the <code>MouseEvent</code> |
| */ |
| |
| public void mouseClicked(MouseEvent e) { } |
| |
| /** |
| * Invoked when a mouse button has been |
| * pressed on a <code>Component</code>. |
| * <P> |
| * @param e the <code>MouseEvent</code> |
| */ |
| |
| public void mousePressed(MouseEvent e) { } |
| |
| /** |
| * Invoked when a mouse button has been released on a component. |
| * <P> |
| * @param e the <code>MouseEvent</code> |
| */ |
| |
| public void mouseReleased(MouseEvent e) { } |
| |
| /** |
| * Invoked when the mouse enters a component. |
| * <P> |
| * @param e the <code>MouseEvent</code> |
| */ |
| |
| public void mouseEntered(MouseEvent e) { } |
| |
| /** |
| * Invoked when the mouse exits a component. |
| * <P> |
| * @param e the <code>MouseEvent</code> |
| */ |
| |
| public void mouseExited(MouseEvent e) { } |
| |
| /** |
| * Invoked when a mouse button is pressed on a component. |
| * <P> |
| * @param e the <code>MouseEvent</code> |
| */ |
| |
| public void mouseDragged(MouseEvent e) { } |
| |
| /** |
| * Invoked when the mouse button has been moved on a component |
| * (with no buttons no down). |
| * <P> |
| * @param e the <code>MouseEvent</code> |
| */ |
| |
| public void mouseMoved(MouseEvent e) { } |
| } |