<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!--

/******************************************************************************
 * Copyright (c) 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    IBM Corporation - initial API and implementation 
 ****************************************************************************/

-->
</head>
<body>

<P>Provides core support for the drag component of drag and drop.  The two main types of
classes in this package are those that pertain to the drag source, and those
that pertain to adapting the transfer agent for the item to be dragged for use
with the {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.core.TransferAdapterProvider
TransferAdapterProvider}.  See the schema documentation for
transferAdapterProviders for more information.</P>

<h2>The Drag Source</h2>
<P>The {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.drag.AbstractDragSourceListener
AbstractDragSourceListener}, which extends the {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.drag.IDragSourceListener
IDragSourceListener} for listening to drags, determines if the {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.drag.DragSourceContext
DragSourceContext} is draggable.  Drag providers should subclass the
{@link
org.eclipse.gmf.runtime.common.ui.services.dnd.drag.AbstractDragSourceListener
AbstractDragSourceListener} and handle the {@link
org.eclipse.swt.dnd.DragSourceEvent DragSourceEvent}.</P>

<h2>The Drag Adapter</h2>
<P>The {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.drag.TransferDragSourceAdapter
TransferDragSourceAdapter} implements the {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.drag.ITransferDragSourceListener
ITransferDragSourceListener} interface.  It adapts the {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.core.ITransferAgent
ITransferAgent} for use with the {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.core.TransferAdapterProvider
TransferAdapterProvider} and notifies its {@link
org.eclipse.gmf.runtime.common.ui.services.dnd.drag.IDragSourceListener
IDragSourceListener} array with {@link org.eclipse.swt.dnd.DragSourceEvent
DragSourceEvent} notifications.</P>

<h2>Package Specification</h2>

<P>For more information on transferring data using Eclipse drag and drop, please
see {@link org.eclipse.swt.dnd.Transfer org.eclipse.swt.dnd.Transfer} and {@link
org.eclipse.swt.dnd.TransferData org.eclipse.swt.dnd.TransferData}.</P>

@canBeSeenBy %partners
</body>
</html>