Add mouse position information to ClickEvent and DoubleClickEvent. Manually verified that this information is indeed available on some older and some more modern browsers, sampling Mac/Linux/Win where possible: - Chrome 5, Chrome 6 - FF 2.0.0.20, FF 3.0.19, FF 3.6.3 - Opera 10.60 - Safari 3.2.2, Safari 5.0.1 - IE6, IE7. Also, a few relevent classes now implement HasDoubleClickHandlers - com/google/gwt/user/client/ui/FocusPanel.java - com/google/gwt/user/client/ui/FocusWidget.java - com/google/gwt/user/client/ui/HTMLTable.java - com/google/gwt/user/client/ui/Hyperlink.java - com/google/gwt/user/client/ui/Image.java - com/google/gwt/user/client/ui/Label.java - com/google/gwt/user/client/ui/TabBar.java Review at http://gwt-code-reviews.appspot.com/763801 Review by: jgw@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8542 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/event/dom/client/ClickEvent.java b/user/src/com/google/gwt/event/dom/client/ClickEvent.java index 63e17c2..d0da72b 100644 --- a/user/src/com/google/gwt/event/dom/client/ClickEvent.java +++ b/user/src/com/google/gwt/event/dom/client/ClickEvent.java
@@ -18,7 +18,7 @@ /** * Represents a native click event. */ -public class ClickEvent extends DomEvent<ClickHandler> { +public class ClickEvent extends MouseEvent<ClickHandler> { /** * Event type for click events. Represents the meta-data associated with this
diff --git a/user/src/com/google/gwt/event/dom/client/DoubleClickEvent.java b/user/src/com/google/gwt/event/dom/client/DoubleClickEvent.java index 258cb68..0a042fc 100644 --- a/user/src/com/google/gwt/event/dom/client/DoubleClickEvent.java +++ b/user/src/com/google/gwt/event/dom/client/DoubleClickEvent.java
@@ -18,7 +18,7 @@ /** * Represents a native double click event. */ -public class DoubleClickEvent extends DomEvent<DoubleClickHandler> { +public class DoubleClickEvent extends MouseEvent<DoubleClickHandler> { /** * Event type for double click events. Represents the meta-data associated
diff --git a/user/src/com/google/gwt/user/client/ui/FocusPanel.java b/user/src/com/google/gwt/user/client/ui/FocusPanel.java index 80ca488..f0a2c84 100644 --- a/user/src/com/google/gwt/user/client/ui/FocusPanel.java +++ b/user/src/com/google/gwt/user/client/ui/FocusPanel.java
@@ -19,12 +19,15 @@ import com.google.gwt.event.dom.client.BlurHandler; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickEvent; +import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.FocusEvent; import com.google.gwt.event.dom.client.FocusHandler; import com.google.gwt.event.dom.client.HasAllFocusHandlers; import com.google.gwt.event.dom.client.HasAllKeyHandlers; import com.google.gwt.event.dom.client.HasAllMouseHandlers; import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.HasDoubleClickHandlers; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.dom.client.KeyDownHandler; import com.google.gwt.event.dom.client.KeyPressEvent; @@ -53,8 +56,8 @@ @SuppressWarnings("deprecation") public class FocusPanel extends SimplePanel implements HasFocus, SourcesClickEvents, SourcesMouseEvents, SourcesMouseWheelEvents, - HasAllMouseHandlers, HasClickHandlers, HasAllKeyHandlers, - HasAllFocusHandlers { + HasAllMouseHandlers, HasClickHandlers, HasDoubleClickHandlers, + HasAllKeyHandlers, HasAllFocusHandlers { static final FocusImpl impl = FocusImpl.getFocusImplForPanel(); @@ -83,6 +86,10 @@ ListenerWrapper.WrappedClickListener.add(this, listener); } + public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler) { + return addDomHandler(handler, DoubleClickEvent.getType()); + } + public HandlerRegistration addFocusHandler(FocusHandler handler) { return addDomHandler(handler, FocusEvent.getType()); }
diff --git a/user/src/com/google/gwt/user/client/ui/FocusWidget.java b/user/src/com/google/gwt/user/client/ui/FocusWidget.java index 3ed68e9..12bc85d 100644 --- a/user/src/com/google/gwt/user/client/ui/FocusWidget.java +++ b/user/src/com/google/gwt/user/client/ui/FocusWidget.java
@@ -20,12 +20,15 @@ import com.google.gwt.event.dom.client.BlurHandler; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickEvent; +import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.FocusEvent; import com.google.gwt.event.dom.client.FocusHandler; import com.google.gwt.event.dom.client.HasAllFocusHandlers; import com.google.gwt.event.dom.client.HasAllKeyHandlers; import com.google.gwt.event.dom.client.HasAllMouseHandlers; import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.HasDoubleClickHandlers; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.dom.client.KeyDownHandler; import com.google.gwt.event.dom.client.KeyPressEvent; @@ -53,8 +56,8 @@ */ @SuppressWarnings("deprecation") public abstract class FocusWidget extends Widget implements SourcesClickEvents, - HasClickHandlers, HasFocus, HasAllFocusHandlers, HasAllKeyHandlers, - HasAllMouseHandlers, SourcesMouseEvents { + HasClickHandlers, HasDoubleClickHandlers, HasFocus, HasAllFocusHandlers, + HasAllKeyHandlers, HasAllMouseHandlers, SourcesMouseEvents { private static final FocusImpl impl = FocusImpl.getFocusImplForWidget(); @@ -99,6 +102,10 @@ ListenerWrapper.WrappedClickListener.add(this, listener); } + public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler) { + return addHandler(handler, DoubleClickEvent.getType()); + } + public HandlerRegistration addFocusHandler(FocusHandler handler) { return addDomHandler(handler, FocusEvent.getType()); }
diff --git a/user/src/com/google/gwt/user/client/ui/HTMLTable.java b/user/src/com/google/gwt/user/client/ui/HTMLTable.java index 0199cff..0c366dd 100644 --- a/user/src/com/google/gwt/user/client/ui/HTMLTable.java +++ b/user/src/com/google/gwt/user/client/ui/HTMLTable.java
@@ -20,7 +20,10 @@ import com.google.gwt.dom.client.TableRowElement; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickEvent; +import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.HasDoubleClickHandlers; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; @@ -43,7 +46,7 @@ */ @SuppressWarnings("deprecation") public abstract class HTMLTable extends Panel implements SourcesTableEvents, - HasClickHandlers { + HasClickHandlers, HasDoubleClickHandlers { /** * Return value for {@link HTMLTable#getCellForEvent}. @@ -721,6 +724,10 @@ return addDomHandler(handler, ClickEvent.getType()); } + public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler) { + return addHandler(handler, DoubleClickEvent.getType()); + } + /** * Adds a listener to the current table. *
diff --git a/user/src/com/google/gwt/user/client/ui/Hyperlink.java b/user/src/com/google/gwt/user/client/ui/Hyperlink.java index 4e72200..9a322d6 100644 --- a/user/src/com/google/gwt/user/client/ui/Hyperlink.java +++ b/user/src/com/google/gwt/user/client/ui/Hyperlink.java
@@ -18,7 +18,10 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickEvent; +import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.HasDoubleClickHandlers; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; @@ -60,7 +63,7 @@ */ @SuppressWarnings("deprecation") public class Hyperlink extends Widget implements HasHTML, SourcesClickEvents, - HasClickHandlers { + HasClickHandlers, HasDoubleClickHandlers { private static HyperlinkImpl impl = GWT.create(HyperlinkImpl.class); @@ -138,6 +141,10 @@ ListenerWrapper.WrappedClickListener.add(this, listener); } + public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler) { + return addHandler(handler, DoubleClickEvent.getType()); + } + public String getHTML() { return DOM.getInnerHTML(anchorElem); }
diff --git a/user/src/com/google/gwt/user/client/ui/Image.java b/user/src/com/google/gwt/user/client/ui/Image.java index 8d85c76..a4343e5 100644 --- a/user/src/com/google/gwt/user/client/ui/Image.java +++ b/user/src/com/google/gwt/user/client/ui/Image.java
@@ -22,10 +22,13 @@ import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickEvent; +import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.ErrorEvent; import com.google.gwt.event.dom.client.ErrorHandler; import com.google.gwt.event.dom.client.HasAllMouseHandlers; import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.HasDoubleClickHandlers; import com.google.gwt.event.dom.client.HasErrorHandlers; import com.google.gwt.event.dom.client.HasLoadHandlers; import com.google.gwt.event.dom.client.LoadEvent; @@ -89,9 +92,9 @@ * </p> */ @SuppressWarnings("deprecation") -public class Image extends Widget implements SourcesLoadEvents, - HasLoadHandlers, HasErrorHandlers, SourcesClickEvents, HasClickHandlers, - HasAllMouseHandlers, SourcesMouseEvents { +public class Image extends Widget implements SourcesLoadEvents, HasLoadHandlers, + HasErrorHandlers, SourcesClickEvents, HasClickHandlers, + HasDoubleClickHandlers, HasAllMouseHandlers, SourcesMouseEvents { /** * The attribute that is set when an image fires a native load or error event @@ -474,6 +477,10 @@ ListenerWrapper.WrappedClickListener.add(this, listener); } + public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler) { + return addHandler(handler, DoubleClickEvent.getType()); + } + public HandlerRegistration addErrorHandler(ErrorHandler handler) { return addHandler(handler, ErrorEvent.getType()); }
diff --git a/user/src/com/google/gwt/user/client/ui/Label.java b/user/src/com/google/gwt/user/client/ui/Label.java index c9e46a8..c9b2f1b 100644 --- a/user/src/com/google/gwt/user/client/ui/Label.java +++ b/user/src/com/google/gwt/user/client/ui/Label.java
@@ -19,8 +19,11 @@ import com.google.gwt.dom.client.Element; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.DoubleClickEvent; +import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.HasAllMouseHandlers; import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.HasDoubleClickHandlers; import com.google.gwt.event.dom.client.MouseDownEvent; import com.google.gwt.event.dom.client.MouseDownHandler; import com.google.gwt.event.dom.client.MouseMoveEvent; @@ -59,8 +62,9 @@ */ @SuppressWarnings("deprecation") public class Label extends Widget implements HasText, HasWordWrap, HasDirection, - HasClickHandlers, SourcesClickEvents, SourcesMouseEvents, - HasAllMouseHandlers, HasDirectionEstimator, HasAutoHorizontalAlignment { + HasClickHandlers, HasDoubleClickHandlers, SourcesClickEvents, + SourcesMouseEvents, HasAllMouseHandlers, HasDirectionEstimator, + HasAutoHorizontalAlignment { /** * Creates a Label widget that wraps an existing <div> or <span> @@ -211,6 +215,10 @@ ListenerWrapper.WrappedClickListener.add(this, listener); } + public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler) { + return addHandler(handler, DoubleClickEvent.getType()); + } + public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) { return addDomHandler(handler, MouseDownEvent.getType()); }