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());
}