1 /*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
4 * This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License 2.0
6 * which accompanies this distribution, and is available at
7 * https://www.eclipse.org/legal/epl-2.0/
9 * SPDX-License-Identifier: EPL-2.0
12 * IBM Corporation - initial API and implementation
13 *******************************************************************************/
14 package org.eclipse.swt.dnd;
16 import org.eclipse.swt.internal.*;
17 import org.eclipse.swt.widgets.*;
20 class DNDListener extends TypedListener {
23 * DNDListener constructor comment.
24 * @param listener org.eclipse.swt.internal.SWTEventListener
26 DNDListener(SWTEventListener listener) {
30 public void handleEvent (Event e) {
33 DragSourceEvent event = new DragSourceEvent((DNDEvent)e);
34 DragSourceEffect sourceEffect = ((DragSource) dndWidget).getDragSourceEffect();
35 if (sourceEffect != null) {
36 sourceEffect.dragStart (event);
38 ((DragSourceListener) eventListener).dragStart (event);
39 event.updateEvent((DNDEvent)e);
43 DragSourceEvent event = new DragSourceEvent((DNDEvent)e);
44 DragSourceEffect sourceEffect = ((DragSource) dndWidget).getDragSourceEffect();
45 if (sourceEffect != null) {
46 sourceEffect.dragFinished (event);
48 ((DragSourceListener) eventListener).dragFinished (event);
49 event.updateEvent((DNDEvent)e);
52 case DND.DragSetData: {
53 DragSourceEvent event = new DragSourceEvent((DNDEvent)e);
54 DragSourceEffect sourceEffect = ((DragSource) dndWidget).getDragSourceEffect();
55 if (sourceEffect != null) {
56 sourceEffect.dragSetData (event);
58 ((DragSourceListener) eventListener).dragSetData (event);
59 event.updateEvent((DNDEvent)e);
63 DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
64 ((DropTargetListener) eventListener).dragEnter (event);
65 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect();
66 if (dropEffect != null) {
67 dropEffect.dragEnter (event);
69 event.updateEvent((DNDEvent)e);
73 DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
74 ((DropTargetListener) eventListener).dragLeave (event);
75 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect();
76 if (dropEffect != null) {
77 dropEffect.dragLeave (event);
79 event.updateEvent((DNDEvent)e);
83 DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
84 ((DropTargetListener) eventListener).dragOver (event);
85 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect();
86 if (dropEffect != null) {
87 dropEffect.dragOver (event);
89 event.updateEvent((DNDEvent)e);
93 DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
94 ((DropTargetListener) eventListener).drop (event);
95 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect();
96 if (dropEffect != null) {
97 dropEffect.drop (event);
99 event.updateEvent((DNDEvent)e);
102 case DND.DropAccept: {
103 DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
104 ((DropTargetListener) eventListener).dropAccept (event);
105 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect();
106 if (dropEffect != null) {
107 dropEffect.dropAccept (event);
109 event.updateEvent((DNDEvent)e);
112 case DND.DragOperationChanged: {
113 DropTargetEvent event = new DropTargetEvent((DNDEvent)e);
114 ((DropTargetListener) eventListener).dragOperationChanged (event);
115 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect();
116 if (dropEffect != null) {
117 dropEffect.dragOperationChanged (event);
119 event.updateEvent((DNDEvent)e);