1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.svg.edit.client.gxt.widget;
19
20 import org.vectomatic.svg.edit.client.SvgrealApp;
21 import org.vectomatic.svg.edit.client.load.DndHandler;
22
23 import com.extjs.gxt.ui.client.widget.Viewport;
24 import com.google.gwt.dom.client.NativeEvent;
25 import com.google.gwt.event.dom.client.DomEvent;
26 import com.google.gwt.event.dom.client.DragEnterEvent;
27 import com.google.gwt.event.dom.client.DragEnterHandler;
28 import com.google.gwt.event.dom.client.DragLeaveEvent;
29 import com.google.gwt.event.dom.client.DragLeaveHandler;
30 import com.google.gwt.event.dom.client.DragOverEvent;
31 import com.google.gwt.event.dom.client.DragOverHandler;
32 import com.google.gwt.event.dom.client.DropEvent;
33 import com.google.gwt.event.dom.client.DropHandler;
34 import com.google.gwt.event.dom.client.HasDragEnterHandlers;
35 import com.google.gwt.event.dom.client.HasDragLeaveHandlers;
36 import com.google.gwt.event.dom.client.HasDragOverHandlers;
37 import com.google.gwt.event.dom.client.HasDropHandlers;
38 import com.google.gwt.event.shared.GwtEvent;
39 import com.google.gwt.event.shared.HandlerRegistration;
40 import com.google.gwt.user.client.Element;
41
42
43
44
45
46 public class ViewportExt extends Viewport implements HasDropHandlers, HasDragEnterHandlers, HasDragLeaveHandlers, HasDragOverHandlers {
47 public ViewportExt() {
48 new DndHandler(this);
49 }
50 public void setElement(Element elem) {
51 super.setElement(elem);
52 setup(elem);
53 }
54
55 private final native void setup(Element elem)
56
57
58
59
60
61
62
63
64 ;
65
66 public void fireEvent(GwtEvent<?> event) {
67 revive(event);
68 SvgrealApp.getApp().getEventBus().fireEventFromSource(event, this);
69 }
70
71
72
73
74
75 private static final native void revive(GwtEvent<?> event)
76
77 ;
78
79
80
81
82
83
84 public void dispatch(NativeEvent event) {
85
86
87 DomEvent.fireNativeEvent(event, this, (Element)event.getCurrentEventTarget().cast());
88 }
89
90 @Override
91 public HandlerRegistration addDropHandler(DropHandler handler) {
92 return SvgrealApp.getApp().getEventBus().addHandlerToSource(DropEvent.getType(), this, handler);
93 }
94
95 @Override
96 public HandlerRegistration addDragLeaveHandler(DragLeaveHandler handler) {
97 return SvgrealApp.getApp().getEventBus().addHandlerToSource(DragLeaveEvent.getType(), this, handler);
98 }
99
100 @Override
101 public HandlerRegistration addDragEnterHandler(DragEnterHandler handler) {
102 return SvgrealApp.getApp().getEventBus().addHandlerToSource(DragEnterEvent.getType(), this, handler);
103 }
104
105 @Override
106 public HandlerRegistration addDragOverHandler(DragOverHandler handler) {
107 return SvgrealApp.getApp().getEventBus().addHandlerToSource(DragOverEvent.getType(), this, handler);
108 }
109
110 }