litesoft
@ 948
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.client.widgets.nonpublic.external; import com.google.gwt.user.client.*; import com.google.gwt.user.client.ui.*; /** * A controller which interprets drag events and delegates the mouse drag * operation to a delegate. * <p/> * see asquare.gwt.tk.client.ui.behavior.DragGesture */ public class DragController extends MouseController { private MouseEvent m_previousEvent; /** * Creates a new DragController which delegates to the specified * handler. * * @param handler a delegate object, or <code>null</code> */ public DragController( MouseHandler handler ) { super( Event.ONMOUSEDOWN | Event.ONMOUSEMOVE | Event.ONMOUSEUP | Event.ONLOSECAPTURE, DragController.class, handler ); } @Override public void onBrowserEvent( Widget widget, Event event ) { super.onBrowserEvent( widget, event ); if ( DOM.eventGetType( event ) == Event.ONLOSECAPTURE ) { /* * Firefox loses the mouseup if released outside the client area. * But we do get an onlosecapture event. Not ideal, but it prevents * a invalid state (dragging while mouse is released). * http://code.google.com/p/google-web-toolkit/issues/detail?id=243 */ onMouseUp( m_previousEvent ); } } @Override protected void onMouseDown( MouseEvent e ) { DOM.setCapture( e.getReceiver().getElement() ); m_previousEvent = e; super.onMouseDown( e ); } @Override protected void onMouseMove( MouseEvent e ) { m_previousEvent = e; super.onMouseMove( e ); } @Override protected void onMouseUp( MouseEvent e ) { if ( m_previousEvent != null ) { // do last to prevent reentrancy via ONLOSECAPTURE DOM.releaseCapture( e.getReceiver().getElement() ); } super.onMouseUp( e ); m_previousEvent = null; } } |
Commits for litesoft/trunk/Java/GWT/Client/src/org/litesoft/GWT/client/widgets/nonpublic/external/DragController.java
Revision | Author | Commited | Message |
---|---|---|---|
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
151 Diff | GeorgeS | Thu 17 Mar, 2011 04:16:22 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
23 Diff | GeorgeS | Wed 24 Feb, 2010 00:34:32 +0000 | |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |