208 lines · 6.5 KB · Java
RawDownload
/* * 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) { }}