aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/java/awt/dnd/DropTarget.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/java/awt/dnd/DropTarget.java')
-rw-r--r--libjava/classpath/java/awt/dnd/DropTarget.java438
1 files changed, 0 insertions, 438 deletions
diff --git a/libjava/classpath/java/awt/dnd/DropTarget.java b/libjava/classpath/java/awt/dnd/DropTarget.java
deleted file mode 100644
index e5180d0..0000000
--- a/libjava/classpath/java/awt/dnd/DropTarget.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/* DropTarget.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath 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 for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.awt.dnd;
-
-import java.awt.Component;
-import java.awt.GraphicsEnvironment;
-import java.awt.HeadlessException;
-import java.awt.Insets;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.datatransfer.FlavorMap;
-import java.awt.datatransfer.SystemFlavorMap;
-import java.awt.dnd.peer.DropTargetPeer;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.peer.ComponentPeer;
-import java.awt.peer.LightweightPeer;
-import java.io.Serializable;
-import java.util.EventListener;
-import java.util.TooManyListenersException;
-
-import javax.swing.Timer;
-
-/**
- * @author Michael Koch
- * @since 1.2
- */
-public class DropTarget
- implements DropTargetListener, EventListener, Serializable
-{
- /**
- * Compatible with JDK 1.2+
- */
- private static final long serialVersionUID = -6283860791671019047L;
-
- protected static class DropTargetAutoScroller
- implements ActionListener
- {
- /**
- * The threshold that keeps the autoscroller running.
- */
- private static final int HYSTERESIS = 10;
-
- /**
- * The initial timer delay.
- */
- private static final int DELAY = 100;
-
- private Component component;
- private Point point;
-
- /**
- * The timer that triggers autoscrolling.
- */
- private Timer timer;
-
- /**
- * The outer region of the scroller. This is the component's size.
- */
- private Rectangle outer;
-
- /**
- * The inner region of the scroller. This is the component size without
- * the autoscroll insets.
- */
- private Rectangle inner;
-
- protected DropTargetAutoScroller (Component c, Point p)
- {
- component = c;
- point = p;
- timer = new Timer(DELAY, this);
- timer.setCoalesce(true);
- timer.start();
- }
-
- protected void updateLocation (Point newLocn)
- {
- Point previous = point;
- point = newLocn;
- if (Math.abs(point.x - previous.x) > HYSTERESIS
- || Math.abs(point.y - previous.y) > HYSTERESIS)
- {
- if (timer.isRunning())
- timer.stop();
- }
- else
- {
- if (! timer.isRunning())
- timer.start();
- }
- }
-
- protected void stop ()
- {
- timer.start();
- }
-
- public void actionPerformed (ActionEvent e)
- {
- Autoscroll autoScroll = (Autoscroll) component;
-
- // First synchronize the inner and outer rectangles.
- Insets i = autoScroll.getAutoscrollInsets();
- int width = component.getWidth();
- int height = component.getHeight();
- if (width != outer.width || height != outer.height)
- outer.setBounds(0, 0, width, height);
- if (inner.x != i.left || inner.y != i.top)
- inner.setLocation(i.left, i.top);
- int inWidth = width - i.left - i.right;
- int inHeight = height - i.top - i.bottom;
- if (inWidth != inner.width || inHeight != inner.height)
- inner.setSize(inWidth, inHeight);
-
- // Scroll if the outer rectangle contains the location, but the
- // inner doesn't.
- if (outer.contains(point) && ! inner.contains(point))
- autoScroll.autoscroll(point);
- }
- }
-
- private Component component;
- private FlavorMap flavorMap;
- private int actions;
- private DropTargetPeer peer;
- private DropTargetContext dropTargetContext;
- private DropTargetListener dropTargetListener;
- private DropTarget.DropTargetAutoScroller autoscroller;
- private boolean active = true;
-
- /**
- * Creates a <code>DropTarget</code> object.
- *
- * @exception HeadlessException If GraphicsEnvironment.isHeadless()
- * returns true.
- */
- public DropTarget ()
- {
- this (null, DnDConstants.ACTION_COPY_OR_MOVE, null, true, null);
- }
-
- /**
- * Creates a <code>DropTarget</code> object.
- *
- * @exception HeadlessException If GraphicsEnvironment.isHeadless()
- * returns true.
- */
- public DropTarget (Component c, DropTargetListener dtl)
- {
- this (c, DnDConstants.ACTION_COPY_OR_MOVE, dtl, true, null);
- }
-
- /**
- * Creates a <code>DropTarget</code> object.
- *
- * @exception HeadlessException If GraphicsEnvironment.isHeadless()
- * returns true.
- */
- public DropTarget (Component c, int i, DropTargetListener dtl)
- {
- this (c, i, dtl, true, null);
- }
-
- /**
- * Creates a <code>DropTarget</code> object.
- *
- * @exception HeadlessException If GraphicsEnvironment.isHeadless()
- * returns true.
- */
- public DropTarget (Component c, int i, DropTargetListener dtl, boolean b)
- {
- this (c, i, dtl, b, null);
- }
-
- /**
- * Creates a <code>DropTarget</code> object.
- *
- * @exception HeadlessException If GraphicsEnvironment.isHeadless()
- * returns true.
- */
- public DropTarget (Component c, int i, DropTargetListener dtl, boolean b,
- FlavorMap fm)
- {
- if (GraphicsEnvironment.isHeadless ())
- throw new HeadlessException ();
-
- setComponent(c);
- setDefaultActions(i);
- dropTargetListener = dtl;
-
- if (fm == null)
- flavorMap = SystemFlavorMap.getDefaultFlavorMap();
- else
- flavorMap = fm;
-
- setActive (b);
-
- if (c != null)
- c.setDropTarget(this);
- }
-
- /**
- * Sets the component associated with this drop target object.
- */
- public void setComponent (Component c)
- {
- if (component != null)
- clearAutoscroll();
- component = c;
- }
-
- /**
- * Returns the component associated with this drop target object.
- */
- public Component getComponent ()
- {
- return component;
- }
-
- /**
- * Sets the default actions.
- */
- public void setDefaultActions (int ops)
- {
- actions = ops;
- }
-
- /**
- * Returns the default actions.
- */
- public int getDefaultActions ()
- {
- return actions;
- }
-
- public void setActive (boolean active)
- {
- this.active = active;
- if (! active)
- clearAutoscroll();
- }
-
- public boolean isActive()
- {
- return active;
- }
-
- /**
- * Adds a new <code>DropTargetListener</code>.
- *
- * @exception TooManyListenersException Sun's JDK does not, despite
- * documentation, throw this exception here when you install an additional
- * <code>DropTargetListener</code>. So to be compatible, we do the same
- * thing.
- */
- public void addDropTargetListener (DropTargetListener dtl)
- throws TooManyListenersException
- {
- if (dtl == null)
- return;
-
- if (dtl.equals(this))
- throw new IllegalArgumentException();
-
- if (dropTargetListener != null)
- throw new TooManyListenersException();
-
- dropTargetListener = dtl;
- }
-
- public void removeDropTargetListener(DropTargetListener dtl)
- {
- if (dropTargetListener != null)
- dropTargetListener = null;
- }
-
- public void dragEnter(DropTargetDragEvent dtde)
- {
- if (active)
- {
- if (dropTargetListener != null)
- dropTargetListener.dragEnter(dtde);
- initializeAutoscrolling(dtde.getLocation());
- }
- }
-
- public void dragOver(DropTargetDragEvent dtde)
- {
- if (active)
- {
- if (dropTargetListener != null)
- dropTargetListener.dragOver(dtde);
- updateAutoscroll(dtde.getLocation());
- }
- }
-
- public void dropActionChanged(DropTargetDragEvent dtde)
- {
- if (active)
- {
- if (dropTargetListener != null)
- dropTargetListener.dropActionChanged(dtde);
- updateAutoscroll(dtde.getLocation());
- }
- }
-
- public void dragExit(DropTargetEvent dte)
- {
- if (active)
- {
- if (dropTargetListener != null)
- dropTargetListener.dragExit(dte);
- clearAutoscroll();
- }
- }
-
- public void drop(DropTargetDropEvent dtde)
- {
- clearAutoscroll();
- if (dropTargetListener != null)
- dropTargetListener.drop(dtde);
- }
-
- public FlavorMap getFlavorMap()
- {
- return flavorMap;
- }
-
- public void setFlavorMap(FlavorMap fm)
- {
- flavorMap = fm;
- }
-
- public void addNotify(ComponentPeer p)
- {
- Component c = component;
- while (c != null && p instanceof LightweightPeer)
- {
- p = c.getPeer();
- c = c.getParent();
- }
-
- if (p instanceof DropTargetPeer)
- {
- peer = ((DropTargetPeer) p);
- peer.addDropTarget(this);
- }
- else
- peer = null;
- }
-
- public void removeNotify(ComponentPeer p)
- {
- ((DropTargetPeer) peer).removeDropTarget(this);
- peer = null;
- p = null;
- }
-
- public DropTargetContext getDropTargetContext()
- {
- if (dropTargetContext == null)
- dropTargetContext = createDropTargetContext ();
-
- return dropTargetContext;
- }
-
- protected DropTargetContext createDropTargetContext()
- {
- if (dropTargetContext == null)
- dropTargetContext = new DropTargetContext (this);
-
- return dropTargetContext;
- }
-
- protected DropTarget.DropTargetAutoScroller createDropTargetAutoScroller
- (Component c, Point p)
- {
- return new DropTarget.DropTargetAutoScroller (c, p);
- }
-
- protected void initializeAutoscrolling(Point p)
- {
- if (component instanceof Autoscroll) // Checks for null too.
- autoscroller = createDropTargetAutoScroller (component, p);
- }
-
- protected void updateAutoscroll(Point dragCursorLocn)
- {
- if (autoscroller != null)
- autoscroller.updateLocation(dragCursorLocn);
- }
-
- protected void clearAutoscroll()
- {
- if (autoscroller != null)
- {
- autoscroller.stop();
- autoscroller = null;
- }
- }
-} // class DropTarget