comparison dwt/dnd/DNDListener.d @ 94:70a562fb34e4

Ported dwt.dnd.DNDListener
author Jacob Carlborg <doob@me.com>
date Tue, 30 Dec 2008 19:12:22 +0100
parents d8635bb48c7c
children d32621bf0f90
comparison
equal deleted inserted replaced
93:b28f69fee882 94:70a562fb34e4
5 * which accompanies this distribution, and is available at 5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html 6 * http://www.eclipse.org/legal/epl-v10.html
7 * 7 *
8 * Contributors: 8 * Contributors:
9 * IBM Corporation - initial API and implementation 9 * IBM Corporation - initial API and implementation
10 *
11 * Port to the D programming language:
12 * Jacob Carlborg <doob@me.com>
10 *******************************************************************************/ 13 *******************************************************************************/
11 module dwt.dnd.DNDListener; 14 module dwt.dnd.DNDListener;
12 15
13 import dwt.dwthelper.utils; 16 import dwt.dwthelper.utils;
14 17
15 import dwt.internal.DWTEventListener; 18 import dwt.internal.DWTEventListener;
16 import dwt.widgets.Event; 19 import dwt.widgets.Event;
17 import dwt.widgets.TypedListener; 20 import dwt.widgets.TypedListener;
18 import dwt.widgets.Widget; 21 import dwt.widgets.Widget;
19 22
23 import dwt.dnd.DND;
24 import dwt.dnd.DNDEvent;
25 import dwt.dnd.DragSource;
26 import dwt.dnd.DragSourceEvent;
27 import dwt.dnd.DragSourceListener;
28 import dwt.dnd.DropTargetEvent;
20 29
21 class DNDListener extends TypedListener { 30 class DNDListener : TypedListener {
22 Widget dndWidget; 31 Widget dndWidget;
23 /** 32 /**
24 * DNDListener constructor comment. 33 * DNDListener constructor comment.
25 * @param listener dwt.internal.DWTEventListener 34 * @param listener dwt.internal.DWTEventListener
26 */ 35 */
27 DNDListener(DWTEventListener listener) { 36 this(DWTEventListener listener) {
28 super(listener); 37 super(listener);
29 } 38 }
30 public void handleEvent (Event e) { 39 public void handleEvent (Event e) {
31 switch (e.type) { 40 switch (e.type) {
32 case DND.DragStart: { 41 case DND.DragStart: {
33 DragSourceEvent event = new DragSourceEvent((DNDEvent)e); 42 DragSourceEvent event = new DragSourceEvent(cast(DNDEvent)e);
34 DragSourceEffect sourceEffect = ((DragSource) dndWidget).getDragSourceEffect(); 43 DragSourceEffect sourceEffect = (cast(DragSource) dndWidget).getDragSourceEffect();
35 if (sourceEffect !is null) { 44 if (sourceEffect !is null) {
36 sourceEffect.dragStart (event); 45 sourceEffect.dragStart (event);
37 } 46 }
38 ((DragSourceListener) eventListener).dragStart (event); 47 (cast(DragSourceListener) eventListener).dragStart (event);
39 event.updateEvent((DNDEvent)e); 48 event.updateEvent(cast(DNDEvent)e);
40 break; 49 break;
41 } 50 }
42 case DND.DragEnd: { 51 case DND.DragEnd: {
43 DragSourceEvent event = new DragSourceEvent((DNDEvent)e); 52 DragSourceEvent event = new DragSourceEvent(cast(DNDEvent)e);
44 DragSourceEffect sourceEffect = ((DragSource) dndWidget).getDragSourceEffect(); 53 DragSourceEffect sourceEffect = (cast(DragSource) dndWidget).getDragSourceEffect();
45 if (sourceEffect !is null) { 54 if (sourceEffect !is null) {
46 sourceEffect.dragFinished (event); 55 sourceEffect.dragFinished (event);
47 } 56 }
48 ((DragSourceListener) eventListener).dragFinished (event); 57 (cast(DragSourceListener) eventListener).dragFinished (event);
49 event.updateEvent((DNDEvent)e); 58 event.updateEvent(cast(DNDEvent)e);
50 break; 59 break;
51 } 60 }
52 case DND.DragSetData: { 61 case DND.DragSetData: {
53 DragSourceEvent event = new DragSourceEvent((DNDEvent)e); 62 DragSourceEvent event = new DragSourceEvent(cast(DNDEvent)e);
54 DragSourceEffect sourceEffect = ((DragSource) dndWidget).getDragSourceEffect(); 63 DragSourceEffect sourceEffect = (cast(DragSource) dndWidget).getDragSourceEffect();
55 if (sourceEffect !is null) { 64 if (sourceEffect !is null) {
56 sourceEffect.dragSetData (event); 65 sourceEffect.dragSetData (event);
57 } 66 }
58 ((DragSourceListener) eventListener).dragSetData (event); 67 (cast(DragSourceListener) eventListener).dragSetData (event);
59 event.updateEvent((DNDEvent)e); 68 event.updateEvent(cast(DNDEvent)e);
60 break; 69 break;
61 } 70 }
62 case DND.DragEnter: { 71 case DND.DragEnter: {
63 DropTargetEvent event = new DropTargetEvent((DNDEvent)e); 72 DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
64 ((DropTargetListener) eventListener).dragEnter (event); 73 (cast(DropTargetListener) eventListener).dragEnter (event);
65 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect(); 74 DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
66 if (dropEffect !is null) { 75 if (dropEffect !is null) {
67 dropEffect.dragEnter (event); 76 dropEffect.dragEnter (event);
68 } 77 }
69 event.updateEvent((DNDEvent)e); 78 event.updateEvent(cast(DNDEvent)e);
70 break; 79 break;
71 } 80 }
72 case DND.DragLeave: { 81 case DND.DragLeave: {
73 DropTargetEvent event = new DropTargetEvent((DNDEvent)e); 82 DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
74 ((DropTargetListener) eventListener).dragLeave (event); 83 (cast(DropTargetListener) eventListener).dragLeave (event);
75 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect(); 84 DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
76 if (dropEffect !is null) { 85 if (dropEffect !is null) {
77 dropEffect.dragLeave (event); 86 dropEffect.dragLeave (event);
78 } 87 }
79 event.updateEvent((DNDEvent)e); 88 event.updateEvent(cast(DNDEvent)e);
80 break; 89 break;
81 } 90 }
82 case DND.DragOver: { 91 case DND.DragOver: {
83 DropTargetEvent event = new DropTargetEvent((DNDEvent)e); 92 DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
84 ((DropTargetListener) eventListener).dragOver (event); 93 (cast(DropTargetListener) eventListener).dragOver (event);
85 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect(); 94 DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
86 if (dropEffect !is null) { 95 if (dropEffect !is null) {
87 dropEffect.dragOver (event); 96 dropEffect.dragOver (event);
88 } 97 }
89 event.updateEvent((DNDEvent)e); 98 event.updateEvent(cast(DNDEvent)e);
90 break; 99 break;
91 } 100 }
92 case DND.Drop: { 101 case DND.Drop: {
93 DropTargetEvent event = new DropTargetEvent((DNDEvent)e); 102 DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
94 ((DropTargetListener) eventListener).drop (event); 103 (cast(DropTargetListener) eventListener).drop (event);
95 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect(); 104 DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
96 if (dropEffect !is null) { 105 if (dropEffect !is null) {
97 dropEffect.drop (event); 106 dropEffect.drop (event);
98 } 107 }
99 event.updateEvent((DNDEvent)e); 108 event.updateEvent(cast(DNDEvent)e);
100 break; 109 break;
101 } 110 }
102 case DND.DropAccept: { 111 case DND.DropAccept: {
103 DropTargetEvent event = new DropTargetEvent((DNDEvent)e); 112 DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
104 ((DropTargetListener) eventListener).dropAccept (event); 113 (cast(DropTargetListener) eventListener).dropAccept (event);
105 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect(); 114 DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
106 if (dropEffect !is null) { 115 if (dropEffect !is null) {
107 dropEffect.dropAccept (event); 116 dropEffect.dropAccept (event);
108 } 117 }
109 event.updateEvent((DNDEvent)e); 118 event.updateEvent(cast(DNDEvent)e);
110 break; 119 break;
111 } 120 }
112 case DND.DragOperationChanged: { 121 case DND.DragOperationChanged: {
113 DropTargetEvent event = new DropTargetEvent((DNDEvent)e); 122 DropTargetEvent event = new DropTargetEvent(cast(DNDEvent)e);
114 ((DropTargetListener) eventListener).dragOperationChanged (event); 123 (cast(DropTargetListener) eventListener).dragOperationChanged (event);
115 DropTargetEffect dropEffect = ((DropTarget) dndWidget).getDropTargetEffect(); 124 DropTargetEffect dropEffect = (cast(DropTarget) dndWidget).getDropTargetEffect();
116 if (dropEffect !is null) { 125 if (dropEffect !is null) {
117 dropEffect.dragOperationChanged (event); 126 dropEffect.dragOperationChanged (event);
118 } 127 }
119 event.updateEvent((DNDEvent)e); 128 event.updateEvent(cast(DNDEvent)e);
120 break; 129 break;
121 } 130 }
122 131
123 } 132 }
124 } 133 }