| /******************************************************************************* |
| * 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.events.TypedEvent; |
| import org.eclipse.swt.graphics.*; |
| |
| /** |
| * The DragSourceEvent contains the event information passed in the methods of the DragSourceListener. |
| * |
| * @see DragSourceListener |
| * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a> |
| */ |
| public class DragSourceEvent extends TypedEvent { |
| /** |
| * The operation that was performed. |
| * @see DND#DROP_NONE |
| * @see DND#DROP_MOVE |
| * @see DND#DROP_COPY |
| * @see DND#DROP_LINK |
| * @see DND#DROP_TARGET_MOVE |
| */ |
| public int detail; |
| |
| /** |
| * In dragStart, the doit field determines if the drag and drop operation |
| * should proceed; in dragFinished, the doit field indicates whether |
| * the operation was performed successfully. |
| * <p></p> |
| * In dragStart: |
| * <p>Flag to determine if the drag and drop operation should proceed. |
| * The application can set this value to false to prevent the drag from starting. |
| * Set to true by default.</p> |
| * <p>In dragSetData:</p> |
| * <p>This will be set to true when the call to dragSetData is made. Set it to |
| * false to cancel the drag.</p> |
| * <p>In dragFinished:</p> |
| * <p>Flag to indicate if the operation was performed successfully. |
| * True if the operation was performed successfully.</p> |
| */ |
| public boolean doit; |
| |
| /** |
| * In dragStart, the x coordinate (relative to the control) of the |
| * position the mouse went down to start the drag. |
| * |
| * @since 3.2 |
| */ |
| public int x; |
| /** |
| * In dragStart, the y coordinate (relative to the control) of the |
| * position the mouse went down to start the drag. |
| * |
| * @since 3.2 |
| */ |
| public int y; |
| |
| /** |
| * The type of data requested. |
| * Data provided in the data field must be of the same type. |
| */ |
| public TransferData dataType; |
| |
| /** |
| * The drag source image to be displayed during the drag. |
| * <p>A value of null indicates that no drag image will be displayed.</p> |
| * <p>The default value is null.</p> |
| * |
| * @since 3.3 |
| */ |
| public Image image; |
| |
| /** |
| * In dragStart, the x offset (relative to the image) where the drag source image will be displayed. |
| * |
| * @since 3.5 |
| */ |
| public int offsetX; |
| /** |
| * In dragStart, the y offset (relative to the image) where the drag source image will be displayed. |
| * |
| * @since 3.5 |
| */ |
| public int offsetY; |
| |
| static final long serialVersionUID = 3257002142513770808L; |
| |
| /** |
| * Constructs a new instance of this class based on the |
| * information in the given untyped event. |
| * |
| * @param e the untyped event containing the information |
| */ |
| public DragSourceEvent(DNDEvent e) { |
| super(e); |
| this.data = e.data; |
| this.detail = e.detail; |
| this.doit = e.doit; |
| this.dataType = e.dataType; |
| this.x = e.x; |
| this.y = e.y; |
| this.image = e.image; |
| this.offsetX = e.offsetX; |
| this.offsetY = e.offsetY; |
| } |
| void updateEvent(DNDEvent e) { |
| e.widget = this.widget; |
| e.time = this.time; |
| e.data = this.data; |
| e.detail = this.detail; |
| e.doit = this.doit; |
| e.dataType = this.dataType; |
| e.x = this.x; |
| e.y = this.y; |
| e.image = this.image; |
| e.offsetX = this.offsetX; |
| e.offsetY = this.offsetY; |
| } |
| /** |
| * Returns a string containing a concise, human-readable |
| * description of the receiver. |
| * |
| * @return a string representation of the event |
| */ |
| @Override |
| public String toString() { |
| String string = super.toString (); |
| return string.substring (0, string.length() - 1) // remove trailing '}' |
| + " operation=" + detail |
| + " type=" + (dataType != null ? dataType.type : 0) |
| + " doit=" + doit |
| + "}"; |
| } |
| } |