Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java128
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java12
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java77
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java12
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java67
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java70
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java14
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java18
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java98
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java172
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java14
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html13
12 files changed, 695 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java
new file mode 100755
index 0000000000..bfe342091a
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DND.java
@@ -0,0 +1,128 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * WebSphere Studio Workbench
+ * (c) Copyright IBM Corp 2000
+ */
+
+import org.eclipse.swt.*;
+
+/**
+ *
+ * Class DND contains all the constants used in defining a
+ * DragSource or a DropTarget.
+ *
+ */
+
+
+public class DND {
+
+ /**
+ * Drag and Drop Operation: no drag/drop operation is performed
+ */
+ public final static int DROP_NONE = 0;
+ /**
+ * Drag and Drop Operation: a copy of the data in the drag source is added to the drop target
+ */
+ public final static int DROP_COPY = 1;
+ /**
+ * Drag and Drop Operation: the data is added to the drop target and removed from the drag source
+ */
+ public final static int DROP_MOVE = 2;
+ /**
+ * Drag and Drop Operation: the drop target makes a link to the data in the drag source
+ */
+ public final static int DROP_LINK = 4;
+
+ /**
+ * DragSource Event: the drop has successfully completed or has been terminated (such as hitting the ESC key);
+ * perform cleanup such as removing data on a move operation
+ */
+ public static final int DragEnd = 2000;
+ /**
+ * DragSource Event: the data to be dropped is required from the drag source
+ */
+ public static final int DragSetData = 2001;
+ /**
+ * DropTarget Event: the cursor has entered the drop target boundaries
+ */
+ public static final int DragEnter = 2002;
+ /**
+ * DropTarget Event: the cursor has left the drop target boundaries
+ */
+ public static final int DragLeave = 2003;
+ /**
+ * DropTarget Event: the cursor is moving over the drop target
+ */
+ public static final int DragOver = 2004;
+ /**
+ * DropTarget Event: the operation being performed has changed
+ * (usually due to the user changing the selected key while dragging)
+ */
+ public static final int DragOperationChanged = 2005;
+ /**
+ * DropTarget Event: the data is being dropped
+ */
+ public static final int Drop = 2006;
+ /**
+ * DropTarget Event: the drop target is given a last chance to modify the drop
+ */
+ public static final int DropAccept = 2007;
+ /**
+ * DragSource Event: a drag is about to begin
+ */
+ public static final int DragStart = 2008;
+
+ public static final int FEEDBACK_NONE = 0;
+ public static final int FEEDBACK_SELECT = 1;
+ public static final int FEEDBACK_INSERT_BEFORE = 2;
+ public static final int FEEDBACK_INSERT_AFTER = 3;
+
+ /**
+ * Error code for SWTError - drag source can not be initialized
+ */
+ public static final int ERROR_CANNOT_INIT_DRAG = 2000;
+ /**
+ * Error code for SWTError - drop target cannot be initialized
+ */
+ public static final int ERROR_CANNOT_INIT_DROP = 2001;
+ /**
+ * Error code for SWTError - Data can not be set on system clipboard
+ */
+ public static final int ERROR_CANNOT_SET_CLIPBOARD = 2002;
+
+
+ static final String INIT_DRAG_MESSAGE = "Can not initialize Drag";
+ static final String INIT_DROP_MESSAGE = "Can not initialize Drop";
+ static final String CANNOT_SET_CLIPBOARD_MESSAGE = "Can not set data in clipboard";
+
+public static void error (int code) {
+ error (code, 0);
+}
+
+public static void error (int code, int hresult) {
+ switch (code) {
+ /* OS Failure/Limit (fatal, may occur only on some platforms) */
+ case DND.ERROR_CANNOT_INIT_DRAG:{
+ String msg = DND.INIT_DRAG_MESSAGE;
+ if (hresult != 0) msg += "result = "+hresult;
+ throw new SWTError (code, msg);
+ }
+ case DND.ERROR_CANNOT_INIT_DROP:{
+ String msg = DND.INIT_DROP_MESSAGE;
+ if (hresult != 0) msg += "result = "+hresult;
+ throw new SWTError (code, msg);
+ }
+ case DND.ERROR_CANNOT_SET_CLIPBOARD:{
+ String msg = DND.CANNOT_SET_CLIPBOARD_MESSAGE;
+ if (hresult != 0) msg += "result = "+hresult;
+ throw new SWTError (code, msg);
+ }
+ }
+
+ /* Unknown/Undefined Error */
+ SWT.error(code);
+}
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java
new file mode 100755
index 0000000000..d7c41f301c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDEvent.java
@@ -0,0 +1,12 @@
+package org.eclipse.swt.dnd;
+
+import org.eclipse.swt.widgets.*;
+
+class DNDEvent extends Event {
+
+ public TransferData dataType;
+ public TransferData[] dataTypes;
+ public int operations;
+ public int feedback;
+
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java
new file mode 100755
index 0000000000..5f2c2e7c1a
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DNDListener.java
@@ -0,0 +1,77 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * WebSphere Studio Workbench
+ * (c) Copyright IBM Corp 2000
+ */
+import org.eclipse.swt.widgets.Event;
+
+class DNDListener extends org.eclipse.swt.widgets.TypedListener {
+/**
+ * DNDListener constructor comment.
+ * @param listener java.util.EventListener
+ */
+DNDListener(java.util.EventListener listener) {
+ super(listener);
+}
+public void handleEvent (Event e) {
+ switch (e.type) {
+ case DND.DragStart: {
+ DragSourceEvent event = new DragSourceEvent((DNDEvent)e);
+ ((DragSourceListener) eventListener).dragStart (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.DragEnd: {
+ DragSourceEvent event = new DragSourceEvent((DNDEvent)e);
+ ((DragSourceListener) eventListener).dragFinished (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.DragSetData: {
+ DragSourceEvent event = new DragSourceEvent((DNDEvent)e);
+ ((DragSourceListener) eventListener).dragSetData (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.DragEnter: {
+ DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
+ ((DropTargetListener) eventListener).dragEnter (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.DragLeave: {
+ DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
+ ((DropTargetListener) eventListener).dragLeave (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.DragOver: {
+ DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
+ ((DropTargetListener) eventListener).dragOver (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.Drop: {
+ DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
+ ((DropTargetListener) eventListener).drop (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.DropAccept: {
+ DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
+ ((DropTargetListener) eventListener).dropAccept (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+ case DND.DragOperationChanged: {
+ DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
+ ((DropTargetListener) eventListener).dragOperationChanged (event);
+ event.updateEvent((DNDEvent)e);
+ break;
+ }
+
+ }
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java
new file mode 100755
index 0000000000..ab728a91ea
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceAdapter.java
@@ -0,0 +1,12 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * (c) Copyright IBM Corp. 1998, 2000 All Rights Reserved
+ */
+
+public class DragSourceAdapter implements DragSourceListener {
+ public void dragStart(DragSourceEvent event){};
+ public void dragFinished(DragSourceEvent event){};
+ public void dragSetData(DragSourceEvent event){};
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java
new file mode 100755
index 0000000000..655c2df91d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceEvent.java
@@ -0,0 +1,67 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * WebSphere Studio Workbench
+ * (c) Copyright IBM Corp 2000
+ */
+import org.eclipse.swt.events.TypedEvent;
+
+/**
+ * The DragSourceEvent contains the event information passed in the methods of the DragSourceListener.
+ *
+ * <p>dragStart : When a drag operation is about to being, the following fields apply:
+ * <ul>
+ * <li>widget - (in) the DragSource object that is initiating the drag
+ * <li>time - (in) the time the drag action occurred
+ * <li>doit - (out) the application can set this value to false to prevent the drag from starting. Set to true by default.
+ * </ul></p>
+ *
+ * <p>dragSetData : When requesting data from the DragSource, the following fields apply:
+ * <ul>
+ * <li>widget - (in) the DragSource object that initiated the drag
+ * <li>time - (in) the time the drop occurred
+ * <li>dataType - (in) the type of data requested. This is a TransferData object and can be used with the Transfer subclasses.
+ * <li>data - (out) the application inserts the actual data here (must match the dataType). This is a Java object and
+ * the type of Java object that the application should insert here depends on the data type.
+ * For example, a TextTransfer requires a Java String containing the text; a FileTransfer requires
+ * a Java array of String with each String in the array representing the full path of the file.
+ * To determine what type of object you need to place in this field, consult the description of
+ * the Transfer subclass
+ * </ul></p>
+ *
+ * <p>dragFinished : When a drag operation has been completed, the following fields apply:
+ * <ul>
+ * <li>widget - (in) the DragSource object that initiated the drag
+ * <li>time - (in) the time the drop occurred
+ * <li>doit - (in) true if the operation performed successfully
+ * <li>detail - (in) the operation that was performed (DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul></p>
+ *
+ */
+
+public class DragSourceEvent extends TypedEvent {
+ public int detail;
+ public boolean doit;
+
+ /**
+ * Platform specific information about the type of data being transferred.
+ */
+ public TransferData dataType;
+
+public DragSourceEvent(DNDEvent e) {
+ super(e);
+ this.data = e.data;
+ this.detail = e.detail;
+ this.doit = e.doit;
+ this.dataType = e.dataType;
+}
+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;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java
new file mode 100755
index 0000000000..3024d06d5f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragSourceListener.java
@@ -0,0 +1,70 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * WebSphere Studio Workbench
+ * (c) Copyright IBM Corp 2000
+ */
+import java.util.EventListener;
+
+/**
+ * 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>.</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 EventListener {
+
+/**
+ * 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>widget - (in) the DragSource object that initiated the drag
+ * <li>time - (in) the time the drop occurred
+ * <li>doit - (out) set to fase by default. To cause a drag to begin, set this to true.
+ * </ul></p>
+ *
+ * @param event the information associated with the drag finished event
+ *
+ */
+public void dragStart(DragSourceEvent event);
+
+/**
+ * The data is required from the drag source.
+ *
+ * <p>The following fields in the DragSourceEvent apply:
+ * <ul>
+ * <li>widget - (in) the DragSource object that initiated the drag
+ * <li>time - (in) the time the drop occurred
+ * <li>dataType - (in) the type of data requested. This is a TransferData object and can be used with the Transfer subclasses.
+ * <li>data - (out) the application inserts the actual data here (must match the dataType)
+ * </ul></p>
+ *
+ * @param event the information associated with the drag set data event
+ */
+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>widget - (in) the DragSource object that initiated the drag
+ * <li>time - (in) the time the drop occurred
+ * <li>doit - (in) true if the operation performed successfully
+ * <li>detail - (in) the operation that was performed (DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul></p>
+ *
+ * @param event the information associated with the drag finished event
+ *
+ */
+public void dragFinished(DragSourceEvent event);
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java
new file mode 100755
index 0000000000..7c2c886e28
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DragUnderEffect.java
@@ -0,0 +1,14 @@
+package org.eclipse.swt.dnd;
+
+import org.eclipse.swt.widgets.*;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * (c) Copyright IBM Corp. 1998, 2000 All Rights Reserved
+ */
+
+abstract class DragUnderEffect {
+
+abstract void show(int effect, int x, int y);
+
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java
new file mode 100755
index 0000000000..eaac3c6678
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetAdapter.java
@@ -0,0 +1,18 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * (c) Copyright IBM Corp. 1998, 2000 All Rights Reserved
+ */
+
+public class DropTargetAdapter implements DropTargetListener {
+
+public void dragEnter(DropTargetEvent event){};
+public void dragLeave(DropTargetEvent event){};
+public void dragOperationChanged(DropTargetEvent event){};
+public void dragOver(DropTargetEvent event){};
+public void drop(DropTargetEvent event){};
+public void dropAccept(DropTargetEvent event){};
+
+
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java
new file mode 100755
index 0000000000..95a77d53f9
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetEvent.java
@@ -0,0 +1,98 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * WebSphere Studio Workbench
+ * (c) Copyright IBM Corp 2000
+ */
+import org.eclipse.swt.events.TypedEvent;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * The DropTargetEvent contains the event information passed in the methods of the DropTargetListener.
+ *
+ * <p>When in dragEnter(), dragOver(), dragLeave(), dragOperationChanged(), dropAccept(),
+ * the following fields apply:
+ * <ul>
+ * <li>(in)widget - the object on which the data will be dropped if the mouse is released
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the DropTarget <code>Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the DropTarget <code>Control</code>
+ * <li>(in)dataTypes - a list of the types of data that the DragSource can support
+ * <li>(in,out)currentDataType - the specific type of data that will be provided on a drop
+ * <li>(in)operations - a list of the operations that the DragSource can support (e.g. DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK)
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul>
+ * The application can change the operation that will be performed by modifying the <code>detail</code> field
+ * but the choice must be one of the values in the <code>operations</code> field.
+ * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>
+ * field but the value must be one of the values in the <code>dataTypes list</code>.</p>
+ *
+ * <p>When in drop(), the following fields apply:
+ * <ul>
+ * <li>(in)widget - the object on which the data was dropped
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the DropTarget <code>Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the DropTarget <code>Control</code>
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * <li>(in)currentDataType - the specific type of data that is be contained in the <code>data</code> field
+ * <li>(in)data - the data (which is of type currentDataType); the type Java Object contained in this field is
+ * dependant on the Transfer subclass. For example, the TextTransfer subclass provides a
+ * String with the text in the String. The FileTransfer object provides an array of String with
+ * each String in the array containing the full path of the file.
+ * </ul>
+ * The application can cancel the drop operation by setting the detail field to DND.DROP_NONE.</p>
+ *
+ */
+public class DropTargetEvent extends TypedEvent {
+ public int x;
+ public int y;
+ public int detail;
+ /**
+ * A list of the operations that the DragSource can support
+ * (e.g. DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK).
+ */
+ public int operations;
+ public int feedback;
+ public Widget item;
+
+ /*
+ * Platform specfic data.
+ */
+ /**
+ * The type of data that will be dropped.
+ */
+ public TransferData currentDataType;
+ /**
+ * A list of the types of data that the DragSource is capable of providing.
+ * The currentDataType must be a member of this list.
+ */
+ public TransferData[] dataTypes;
+
+
+public DropTargetEvent(DNDEvent e) {
+ super(e);
+ this.data = e.data;
+ this.x = e.x;
+ this.y = e.y;
+ this.detail = e.detail;
+ this.currentDataType = e.dataType;
+ this.dataTypes = e.dataTypes;
+ this.operations = e.operations;
+ this.feedback = e.feedback;
+ this.item = e.item;
+}
+void updateEvent(DNDEvent e) {
+ e.widget = this.widget;
+ e.time = this.time;
+ e.data = this.data;
+ e.x = this.x;
+ e.y = this.y;
+ e.detail = this.detail;
+ e.dataType = this.currentDataType;
+ e.dataTypes = this.dataTypes;
+ e.operations = this.operations;
+ e.feedback = this.feedback;
+ e.item = this.item;
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java
new file mode 100755
index 0000000000..acd9e09f69
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/DropTargetListener.java
@@ -0,0 +1,172 @@
+package org.eclipse.swt.dnd;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * WebSphere Studio Workbench
+ * (c) Copyright IBM Corp 2000
+ */
+import org.eclipse.swt.graphics.*;
+import java.util.EventListener;
+
+/**
+ * The <code>DropTargetListener</code> class provides event notification to the application for DropTarget events.
+ *
+ * <p>As the user moves the cursor into, over and out of a Control that has been designated as a DropTarget, events
+ * indicate what operation can be performed and what data can be transferred if a drop where to occur at that point.
+ * The application can respond to these events and change the type of data that will be dropped, change the operation
+ * that will be performed or stop any drop from happening on the current target.</p>
+ *
+ * <p>When the user causes a drop to happen by releasing the mouse over a valid drop target, the application has one
+ * last chance to change the data type of the drop through the DropAccept event. If the drop is still allowed, the
+ * DropAccept event is immediately followed by the Drop event. In the Drop event, the application can still change the
+ * operation that is performed but the data type is fixed.</p>
+ *
+ */
+public interface DropTargetListener extends EventListener {
+/**
+ * The cursor has entered the drop target boundaries.
+ *
+ * <p>The following fields in the DropTargetEvent apply:
+ * <ul>
+ * <li>(in)widget - the DragSource object that initiated the drag
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)dataTypes - a list of the types of data that the <code>DragSource</code> can support
+ * <li>(in,out)currentDataType - the specific type of data that will be provided
+ * <li>(in)operations - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul></p>
+ *
+ * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field
+ * but the choice must be one of the values in the <code>operations</code> field.
+ * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>
+ * field but the value must be one of the values in the <code>dataTypes</code> list.</p>
+ *
+ * @param event the information associated with the drag enter event
+ *
+ */
+public void dragEnter(DropTargetEvent event);
+/**
+ * The cursor has left the drop target boundaries.
+ *
+ * <p>The following fields in the DropTargetEvent apply:
+ * <ul>
+ * <li>(in)widget - the DragSource object that initiated the drag
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)dataTypes - a list of the types of data that the <code>DragSource</code> can support
+ * <li>(in,out)currentDataType - the specific type of data that will be provided
+ * <li>(in)operations - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul></p>
+ *
+ * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field
+ * but the choice must be one of the values in the <code>operations</code> field.
+ * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>
+ * field but the value must be one of the values in the <code>dataTypes</code> list.</p>
+ *
+ * @param event the information associated with the drag leave event
+ *
+ */
+
+public void dragLeave(DropTargetEvent event);
+/**
+ * The operation being performed has changed (usually due to the user changing the selected key while dragging).
+ *
+ * <p>The following fields in the DropTargetEvent apply:
+ * <ul>
+ * <li>(in)widget - the DragSource object that initiated the drag
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)dataTypes - a list of the types of data that the <code>DragSource</code> can support
+ * <li>(in,out)currentDataType - the specific type of data that will be provided
+ * <li>(in)operations - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul></p>
+ *
+ * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field
+ * but the choice must be one of the values in the <code>operations</code> field.
+ * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>
+ * field but the value must be one of the values in the <code>dataTypes</code> list.</p>
+ *
+ * @param event the information associated with the drag operation changed event
+ */
+
+public void dragOperationChanged(DropTargetEvent event);
+/**
+ * The cursor is moving over the drop target.
+ *
+ * <p>The following fields in the DropTargetEvent apply:
+ * <ul>
+ * <li>(in)widget - the DragSource object that initiated the drag
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)dataTypes - a list of the types of data that the <code>DragSource</code> can support
+ * <li>(in,out)currentDataType - the specific type of data that will be provided
+ * <li>(in)operations - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul></p>
+ *
+ * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field
+ * but the choice must be one of the values in the <code>operations</code> field.
+ * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>
+ * field but the value must be one of the values in the <code>dataTypes</code> list.</p>
+ *
+ * @param event the information associated with the drag over event
+ *
+ */
+
+public void dragOver(DropTargetEvent event);
+/**
+ * The data is being dropped.
+ *
+ * <p>The following fields in DropTargetEvent apply:
+ * <ul>
+ * <li>(in)widget - the DragSource object that initiated the drag
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * <li>(in)currentDataType - the specific type of data that will be provided
+ * <li>(in)data - the data (which is of type currentDataType)
+ * </ul></p>
+ *
+ * <p>The application can refuse to perform the drop operation by setting the detail field to DND.DROP_NONE.</p>
+ *
+ * @param event the information associated with the drop event
+ *
+ */
+
+public void drop(DropTargetEvent event);
+/**
+ * The drop target is given the chance to change the nature of the drop. It can veto the drop by setting the
+ * <code>event.detail</code> field to <code>DND.DROP_NONE</code>, it can change the data of data that will be
+ * dropped by setting the <code>event.currentDataType</code> field to a different value or it can change the
+ * operation that will be performed by changing the <code>event.detail</code> field.
+ *
+ * <p>The following fields in the DropTargetEvent apply:
+ * <ul>
+ * <li>(in)widget - the DragSource object that initiated the drag
+ * <li>(in)time - the time the drop occurred
+ * <li>(in)x - the x-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)y - the y-cordinate of the cursor relative to the <code>DropTarget Control</code>
+ * <li>(in)dataTypes - a list of the types of data that the <code>DragSource</code> can support
+ * <li>(in,out)currentDataType - the specific type of data that will be provided
+ * <li>(in)operations - a list of the operations that the DragSource can support (e.g. <code>DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK</code>)
+ * <li>(in,out)detail - the operation being performed (one of DND.DROP_MOVE, DND.DROP_COPY, DND.DROP_LINK, DND.DROP_NONE)
+ * </ul></p>
+ *
+ * <p>The application can change the operation that will be performed by modifying the <code>detail</code> field
+ * but the choice must be one of the values in the <code>operations</code> field.
+ * The application can also change the type of data being requested by modifying the <code>currentDataTypes</code>
+ * field but the value must be one of the values in the <code>dataTypes</code> list.</p>
+ *
+ * @param event the information associated with the drop accept event
+ *
+ */
+public void dropAccept(DropTargetEvent event);
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java
new file mode 100755
index 0000000000..6cf7c6054c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/NoDragUnderEffect.java
@@ -0,0 +1,14 @@
+package org.eclipse.swt.dnd;
+
+import org.eclipse.swt.widgets.*;
+
+/*
+ * Licensed Materials - Property of IBM,
+ * (c) Copyright IBM Corp. 1998, 2000 All Rights Reserved
+ */
+
+class NoDragUnderEffect extends DragUnderEffect {
+
+NoDragUnderEffect(Control control) {}
+void show(int effect, int x, int y){}
+} \ No newline at end of file
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html
new file mode 100755
index 0000000000..2f36647b51
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common/org/eclipse/swt/dnd/package.html
@@ -0,0 +1,13 @@
+ <html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="IBM">
+ <title>Package-level Javadoc</title>
+</head>
+<body>
+Brief overview will be provided here.
+<h2>
+Package Specification</h2>
+Detailed overview will be provided here.
+</body>
+</html>

Back to the top