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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
// This Source Code is Copyright & Licenced as indicated below package org.litesoft.GWT.client.widgets.nonpublic.external; /* * Copyright 2007 Mat Gessel <mat.gessel@gmail.com> * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ import com.google.gwt.core.client.*; import com.google.gwt.user.client.*; /** * Converts {@link MouseEvent}s to {@link DragEvent}s and delegates to the * specified {@link DragGesture}. */ public class MouseDragHandler extends MouseHandlerAdaptor { private static MouseDragHandlerImpl s_Impl = (MouseDragHandlerImpl) GWT.create( MouseDragHandlerImpl.class ); private DragGesture m_dragGesture; private MouseEvent m_mouseDown = null; private MouseEvent m_previousEvent = null; public MouseDragHandler( DragGesture dragGesture ) { super( Event.ONMOUSEDOWN | Event.ONMOUSEMOVE | Event.ONMOUSEUP ); m_dragGesture = dragGesture; } protected MouseEvent getMouseDown() { return m_mouseDown; } protected MouseEvent getPreviousEvent() { return m_previousEvent; } /** * Get the delegate object which will handle drag operations. */ public DragGesture getDragGesture() { return m_dragGesture; } /** * Set the delegate object which will handle drag operations. */ public void setDragGesture( DragGesture dragGesture ) { m_dragGesture = dragGesture; } @Override public void onMouseDown( MouseEvent e ) { DOM.eventCancelBubble( e.getDomEvent(), true ); s_Impl.onMouseDown( e.getDomEvent() ); if ( m_dragGesture != null ) { m_mouseDown = e; m_dragGesture.start( e ); m_previousEvent = e; } } @Override public void onMouseMove( MouseEvent e ) { if ( m_mouseDown != null ) { m_dragGesture.step( new DragEvent( e, m_mouseDown, m_previousEvent ) ); m_previousEvent = e; } } @Override public void onMouseUp( MouseEvent e ) { // it is possible to get a mouse up without a mouse down if ( m_mouseDown != null ) { // clear MD first to prevent reentrancy m_mouseDown = null; m_dragGesture.finish(); m_previousEvent = null; } if ( e != null ) { s_Impl.onMouseUp( e.getDomEvent() ); } } protected static class MouseDragHandlerImpl { public void onMouseDown( Event event ) { // prevents text selection and image dragging in Mozilla, Safari & Opera DOM.eventPreventDefault( event ); } public void onMouseUp( Event event ) { } } protected static class MouseDragHandlerImplIE6 extends MouseDragHandlerImpl { @Override public native void onMouseDown( Event event ) /*-{ $doc.body.onselectstart = function () { return false; }; $doc.body.ondragstart = function () { return false; }; }-*/; @Override public native void onMouseUp( Event event ) /*-{ $doc.body.onselectstart = null; $doc.body.ondragstart = null; }-*/; } } |
Commits for litesoft/trunk/Java/GWT/Client/src/org/litesoft/GWT/client/widgets/nonpublic/external/MouseDragHandler.java
Revision | Author | Commited | Message |
---|---|---|---|
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
720 Diff | GeorgeS | Sun 10 Jun, 2012 16:20:42 +0000 | |
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 |