OK I've got a little further now: I've create a new DOMImpl... class and overridden the eventGetTypeInt(String) method. everything compiles/ runs in hosted mode without errors - but no drag/drop events get captured - it's like they haven't been added...
Here's my DropEvent class... public class DropEvent extends DomEvent<DropHandler> { /** * Event type for drop events. Represents the meta-data associated with this * event. */ private static final Type<DropHandler> TYPE = new Type<DropHandler> ("drop", new DropEvent()); /** * Gets the event type associated with drop events. * * @return the handler type */ public static Type<DropHandler> getType() { return TYPE; } /** * Protected constructor, use * {...@link DomEvent#fireNativeEvent (com.google.gwt.dom.client.NativeEvent, com.google.gwt.event.shared.HasHandlers)} * to fire drop events. */ protected DropEvent() { } @Override public Type<DropHandler> getAssociatedType() { return TYPE; } @Override protected void dispatch(DropHandler handler) { handler.onDrop(this); } } ... is there something I'm missing... and my DOMImpl class: public class DOMImplMozillaHtml5 extends DOMImplMozillaOld { public native int eventGetTypeInt(String eventType) /*-{ switch (eventType) { case "blur": return 0x01000; case "change": return 0x00400; case "click": return 0x00001; case "dblclick": return 0x00002; case "focus": return 0x00800; case "keydown": return 0x00080; case "keypress": return 0x00100; case "keyup": return 0x00200; case "load": return 0x08000; case "losecapture": return 0x02000; case "mousedown": return 0x00004; case "mousemove": return 0x00040; case "mouseout": return 0x00020; case "mouseover": return 0x00010; case "mouseup": return 0x00008; case "scroll": return 0x04000; case "error": return 0x10000; case "mousewheel": return 0x20000; case "DOMMouseScroll": return 0x20000; case "contextmenu": return 0x40000; case "paste": return 0x80000; case "drop": return 0x00001; case "dragdrop": return 0x00001; case "dragleave": return 0x00001; case "dragover": return 0x00001; case "dragenter": return 0x00001; } }-*/; } On Dec 31, 12:24 am, DaveC <david.andrew.chap...@googlemail.com> wrote: > OK, From what I have since found out is that *all* the native browser > events are stored in a JSNI method in the DOMImpl class here > DOMImpl.eventGetTypeInt(String name)... which is why the exception was > being thrown (there is no "drop", "dragenter", etc events defined). > > So in order to add the new html5 events I would need to add my own > DOMImpl class... which I can't seem to do... I appear to be trying to > accomplish the same task as the person posting > herehttp://groups.google.com/group/google-web-toolkit/browse_thread/threa... > > This doesn't appear to be possible (or at least simple or obvious or > documented)... > > Its frustrating for me as I've already written the (few lines of) > javascript code to do this - I'm using GWT for a project so really I > need a GWT implementation... > > Do any of the GWT experts have any suggestions?? > > On Dec 30, 4:24 pm, DaveC <david.andrew.chap...@googlemail.com> wrote: > > > > > I'm probably not doing this the right way but, I've been trying to > > extend MouseEvent to support HTML5 Drag and Drop (drag, dragenter, > > etc. etc.). > > > I've created a: > > > Has...Handlers interface > > bunch of Handler classes (DropHandler, DragEnterHandler, etc) > > and a bunch of Event classes that extend MouseEvent (DropEvent, > > DragEnterEvent, etc). > > > I've also created a DropTarget Widget that implements the > > Has...Handlers interface which accepts a Widget as a param in its > > contructor which then calls setElement() passing in widget.getElement > > ()... > > > I then add this DropTarget to the RootPanel (for testing purposes) in > > an onModuleLoad. > > > But I'm getting a low level error ("Something other than an int was > > returned from JSNI method"): > > > com.google.gwt.dev.shell.HostedModeException: Something other than an > > int was returned from JSNI method > > '....@com.google.gwt.user.client.impl.domimpl::eventGetTypeInt(Ljava/lang/ > > String;)': JS value of type undefined, expected int > > at com.google.gwt.dev.shell.JsValueGlue.getIntRange > > (JsValueGlue.java:266) > > at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144) > > at com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt > > (ModuleSpace.java:242) > > at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeInt > > (JavaScriptHost.java:75) > > at com.google.gwt.user.client.impl.DOMImpl.eventGetTypeInt > > (DOMImpl.java) > > at com.google.gwt.user.client.Event$.getTypeInt(Event.java:491) > > at com.google.gwt.user.client.ui.Widget.addDomHandler(Widget.java: > > 184) > > at > > com.applegreen.gwt.html5.dnd.client.DropTarget.addDragEnterHandler > > (DropTarget.java:44) > > at com.applegreen.gwt.test.client.DragAndDropTest.onModuleLoad > > (DragAndDropTest.java:46) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java: > > 369) > > at com.google.gwt.dev.shell.OophmSessionHandler.loadModule > > (OophmSessionHandler.java:185) > > at com.google.gwt.dev.shell.BrowserChannelServer.processConnection > > (BrowserChannelServer.java:380) > > at com.google.gwt.dev.shell.BrowserChannelServer.run > > (BrowserChannelServer.java:222) > > at java.lang.Thread.run(Unknown Source) > > > Can anyone shed any light on what I'm doing wrong or what method I > > should have overidden (I'm not a java programmer btw)?? > > > Cheers, > > Dave -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.