| /******************************************************************************* |
| * Copyright (c) 2000, 2011 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 |
| *******************************************************************************/ |
| package org.eclipse.swt.dnd; |
| |
| import org.eclipse.swt.internal.SWTEventListener; |
| |
| /** |
| * The <code>DragSourceListener</code> class provides event notification to the application for DragSource events. |
| * |
| * <p>When the user drops data on a <code>DropTarget</code>, the application which defines the <code>DragSource</code> |
| * must provide the dropped data by implementing <code>dragSetData</code>. In the dragSetData, the application |
| * must support all the data types that were specified in the DragSource#setTransfer method.</p> |
| * |
| * <p>After the drop has completed successfully or has been aborted, the application which defines the |
| * <code>DragSource</code> is required to take the appropriate cleanup action. In the case of a successful |
| * <b>move</b> operation, the application must remove the data that was transferred.</p> |
| * |
| */ |
| public interface DragSourceListener extends SWTEventListener { |
| |
| /** |
| * The user has begun the actions required to drag the widget. This event gives the application |
| * the chance to decide if a drag should be started. |
| * |
| * <p>The following fields in the DragSourceEvent apply: |
| * <ul> |
| * <li>(in)widget |
| * <li>(in)time |
| * <li>(in,out)doit |
| * </ul></p> |
| * |
| * @param event the information associated with the drag start event |
| * |
| * @see DragSourceEvent |
| */ |
| public void dragStart(DragSourceEvent event); |
| |
| /** |
| * The data is required from the drag source. |
| * |
| * <p>The following fields in the DragSourceEvent apply: |
| * <ul> |
| * <li>(in)widget |
| * <li>(in)time |
| * <li>(in)dataType - the type of data requested. |
| * <li>(out)data - the application inserts the actual data here (must match the dataType) |
| * <li>(out)doit - set this to cancel the drag |
| * </ul></p> |
| * |
| * @param event the information associated with the drag set data event |
| * |
| * @see DragSourceEvent |
| */ |
| public void dragSetData(DragSourceEvent event); |
| |
| /** |
| * The drop has successfully completed(mouse up over a valid target) or has been terminated (such as hitting |
| * the ESC key). Perform cleanup such as removing data from the source side on a successful move operation. |
| * |
| * <p>The following fields in the DragSourceEvent apply: |
| * <ul> |
| * <li>(in)widget |
| * <li>(in)time |
| * <li>(in)doit |
| * <li>(in)detail |
| * </ul></p> |
| * |
| * @param event the information associated with the drag finished event |
| * |
| * @see DragSourceEvent |
| */ |
| public void dragFinished(DragSourceEvent event); |
| } |