Refactors event infrastructure, to simplify the firing mechanism and allow users
to cherry-pick the non-Dom events.
Patch by: jgw
Review by: ecc, rjrjr
git-svn-id: https://google-web-toolkit.googlecode.com/svn/releases/1.6@4494 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/event/Event.gwt.xml b/user/src/com/google/gwt/event/Event.gwt.xml
index 44c8ff4..8c5c4e8 100644
--- a/user/src/com/google/gwt/event/Event.gwt.xml
+++ b/user/src/com/google/gwt/event/Event.gwt.xml
@@ -1,6 +1,5 @@
<module>
- <!-- This module could be broken down into much finer detail -->
- <source path="shared"/>
- <source path="logical/shared"/>
- <source path="dom/client"/>
-</module>
\ No newline at end of file
+ <inherits name="com.google.gwt.event.EventBase" />
+ <inherits name="com.google.gwt.event.dom.DomEvent" />
+ <inherits name="com.google.gwt.event.logical.LogicalEvent" />
+</module>
diff --git a/user/src/com/google/gwt/event/EventBase.gwt.xml b/user/src/com/google/gwt/event/EventBase.gwt.xml
new file mode 100644
index 0000000..9f0de72
--- /dev/null
+++ b/user/src/com/google/gwt/event/EventBase.gwt.xml
@@ -0,0 +1,5 @@
+<module>
+ <inherits name="com.google.gwt.core.Core" />
+
+ <source path="shared" />
+</module>
diff --git a/user/src/com/google/gwt/event/dom/DomEvent.gwt.xml b/user/src/com/google/gwt/event/dom/DomEvent.gwt.xml
new file mode 100644
index 0000000..e2c233c
--- /dev/null
+++ b/user/src/com/google/gwt/event/dom/DomEvent.gwt.xml
@@ -0,0 +1,6 @@
+<module>
+ <inherits name="com.google.gwt.event.EventBase" />
+ <inherits name="com.google.gwt.user.Dom" />
+
+ <source path="client"/>
+</module>
diff --git a/user/src/com/google/gwt/event/dom/client/DomEvent.java b/user/src/com/google/gwt/event/dom/client/DomEvent.java
index b8b7135..c4ff6f4 100644
--- a/user/src/com/google/gwt/event/dom/client/DomEvent.java
+++ b/user/src/com/google/gwt/event/dom/client/DomEvent.java
@@ -17,7 +17,7 @@
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
+import com.google.gwt.event.shared.HasHandlers;
import com.google.gwt.user.client.Event;
/**
@@ -31,6 +31,7 @@
*/
public abstract class DomEvent<H extends EventHandler> extends GwtEvent<H>
implements HasNativeEvent {
+
/**
* Type class used by dom event subclasses. Type is specialized for dom in
* order to carry information about the native event.
@@ -53,7 +54,7 @@
/**
* This constructor allows dom event types to be triggered by the
- * {@link DomEvent#fireNativeEvent(Event, HandlerManager)} method. It should
+ * {@link DomEvent#fireNativeEvent(Event, HasHandlers)} method. It should
* only be used by implementors supporting new dom events.
* <p>
* Any such dom event type must act as a flyweight around a native event
@@ -109,7 +110,7 @@
* @param handlers the event manager containing the handlers to fire (may be
* null)
*/
- public static void fireNativeEvent(Event nativeEvent, HandlerManager handlers) {
+ public static void fireNativeEvent(Event nativeEvent, HasHandlers handlers) {
assert nativeEvent != null : "nativeEvent must not be null";
if (registered != null && handlers != null) {
final DomEvent.Type<?> typeKey = registered.unsafeGet(nativeEvent.getType());
diff --git a/user/src/com/google/gwt/event/logical/LogicalEvent.gwt.xml b/user/src/com/google/gwt/event/logical/LogicalEvent.gwt.xml
new file mode 100644
index 0000000..00485a7
--- /dev/null
+++ b/user/src/com/google/gwt/event/logical/LogicalEvent.gwt.xml
@@ -0,0 +1,5 @@
+<module>
+ <inherits name="com.google.gwt.event.EventBase" />
+
+ <source path="shared" />
+</module>
diff --git a/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java b/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java
index 62066a2..3fe1144 100644
--- a/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/BeforeSelectionEvent.java
@@ -16,7 +16,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
/**
* Represents a before selection event.
@@ -45,13 +44,10 @@
HasBeforeSelectionHandlers<I> source, I item) {
// If no handlers exist, then type can be null.
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null) {
- BeforeSelectionEvent<I> event = new BeforeSelectionEvent<I>();
- event.setItem(item);
- handlers.fireEvent(event);
- return event;
- }
+ BeforeSelectionEvent<I> event = new BeforeSelectionEvent<I>();
+ event.setItem(item);
+ source.fireEvent(event);
+ return event;
}
return null;
}
diff --git a/user/src/com/google/gwt/event/logical/shared/CloseEvent.java b/user/src/com/google/gwt/event/logical/shared/CloseEvent.java
index 85006a7..aa71fd1 100644
--- a/user/src/com/google/gwt/event/logical/shared/CloseEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/CloseEvent.java
@@ -16,7 +16,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
/**
* Represents a close event.
@@ -53,11 +52,8 @@
public static <T> void fire(HasCloseHandlers<T> source, T target,
boolean autoClosed) {
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null) {
- CloseEvent<T> event = new CloseEvent<T>(target, autoClosed);
- handlers.fireEvent(event);
- }
+ CloseEvent<T> event = new CloseEvent<T>(target, autoClosed);
+ source.fireEvent(event);
}
}
diff --git a/user/src/com/google/gwt/event/logical/shared/HighlightEvent.java b/user/src/com/google/gwt/event/logical/shared/HighlightEvent.java
index 38f785f..ab8ed2e 100644
--- a/user/src/com/google/gwt/event/logical/shared/HighlightEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/HighlightEvent.java
@@ -16,7 +16,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HasHandlers;
/**
@@ -42,11 +41,8 @@
public static <V, S extends HasHighlightHandlers<V> & HasHandlers> void fire(
S source, V highlighted) {
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null) {
- HighlightEvent<V> event = new HighlightEvent<V>(highlighted);
- handlers.fireEvent(event);
- }
+ HighlightEvent<V> event = new HighlightEvent<V>(highlighted);
+ source.fireEvent(event);
}
}
diff --git a/user/src/com/google/gwt/event/logical/shared/OpenEvent.java b/user/src/com/google/gwt/event/logical/shared/OpenEvent.java
index a6a11c2..1e6c20e 100644
--- a/user/src/com/google/gwt/event/logical/shared/OpenEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/OpenEvent.java
@@ -16,7 +16,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
/**
* Represents a open event.
@@ -40,11 +39,8 @@
*/
public static <T> void fire(HasOpenHandlers<T> source, T target) {
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null) {
- OpenEvent<T> event = new OpenEvent<T>(target);
- handlers.fireEvent(event);
- }
+ OpenEvent<T> event = new OpenEvent<T>(target);
+ source.fireEvent(event);
}
}
diff --git a/user/src/com/google/gwt/event/logical/shared/ResizeEvent.java b/user/src/com/google/gwt/event/logical/shared/ResizeEvent.java
index a931456..6ca64e6 100644
--- a/user/src/com/google/gwt/event/logical/shared/ResizeEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/ResizeEvent.java
@@ -17,7 +17,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HasHandlers;
/**
@@ -41,11 +40,8 @@
public static <S extends HasResizeHandlers & HasHandlers> void fire(S source,
int width, int height) {
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null) {
- ResizeEvent event = new ResizeEvent(width, height);
- handlers.fireEvent(event);
- }
+ ResizeEvent event = new ResizeEvent(width, height);
+ source.fireEvent(event);
}
}
diff --git a/user/src/com/google/gwt/event/logical/shared/SelectionEvent.java b/user/src/com/google/gwt/event/logical/shared/SelectionEvent.java
index 967b557..a482ae6 100644
--- a/user/src/com/google/gwt/event/logical/shared/SelectionEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/SelectionEvent.java
@@ -16,7 +16,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
/**
* Represents a selection event.
@@ -41,11 +40,8 @@
*/
public static <I> void fire(HasSelectionHandlers<I> source, I selectedItem) {
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null) {
- SelectionEvent<I> event = new SelectionEvent<I>(selectedItem);
- handlers.fireEvent(event);
- }
+ SelectionEvent<I> event = new SelectionEvent<I>(selectedItem);
+ source.fireEvent(event);
}
}
diff --git a/user/src/com/google/gwt/event/logical/shared/ShowRangeEvent.java b/user/src/com/google/gwt/event/logical/shared/ShowRangeEvent.java
index 5733bff..81337d9 100644
--- a/user/src/com/google/gwt/event/logical/shared/ShowRangeEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/ShowRangeEvent.java
@@ -16,7 +16,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HasHandlers;
/**
@@ -44,11 +43,8 @@
public static <V, S extends HasShowRangeHandlers<V> & HasHandlers> void fire(
S source, V start, V end) {
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null) {
- ShowRangeEvent<V> event = new ShowRangeEvent<V>(start, end);
- handlers.fireEvent(event);
- }
+ ShowRangeEvent<V> event = new ShowRangeEvent<V>(start, end);
+ source.fireEvent(event);
}
}
diff --git a/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java b/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java
index ab32e66..e5d8368 100644
--- a/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java
+++ b/user/src/com/google/gwt/event/logical/shared/ValueChangeEvent.java
@@ -16,7 +16,6 @@
package com.google.gwt.event.logical.shared;
import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerManager;
/**
* Represents a value change event.
@@ -40,11 +39,8 @@
*/
public static <I> void fire(HasValueChangeHandlers<I> source, I value) {
if (TYPE != null) {
- HandlerManager handlers = source.getHandlers();
- if (handlers != null && handlers.isEventHandled(TYPE)) {
- ValueChangeEvent<I> event = new ValueChangeEvent<I>(value);
- handlers.fireEvent(event);
- }
+ ValueChangeEvent<I> event = new ValueChangeEvent<I>(value);
+ source.fireEvent(event);
}
}
@@ -62,7 +58,7 @@
I oldValue, I newValue) {
if (shouldFire(source, oldValue, newValue)) {
ValueChangeEvent<I> event = new ValueChangeEvent<I>(newValue);
- source.getHandlers().fireEvent(event);
+ source.fireEvent(event);
}
}
@@ -90,7 +86,7 @@
*/
protected static <I> boolean shouldFire(HasValueChangeHandlers<I> source,
I oldValue, I newValue) {
- return TYPE != null && source.getHandlers() != null && oldValue != newValue
+ return TYPE != null && oldValue != newValue
&& (oldValue == null || !oldValue.equals(newValue));
}
diff --git a/user/src/com/google/gwt/event/shared/HandlerManager.java b/user/src/com/google/gwt/event/shared/HandlerManager.java
index fc1a0a3..00a831f 100644
--- a/user/src/com/google/gwt/event/shared/HandlerManager.java
+++ b/user/src/com/google/gwt/event/shared/HandlerManager.java
@@ -15,15 +15,14 @@
*/
package com.google.gwt.event.shared;
-import com.google.gwt.event.shared.GwtEvent.Type;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.ui.RootPanel;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.google.gwt.event.shared.GwtEvent.Type;
+import com.google.gwt.user.client.Command;
+
/**
* Manager responsible for adding handlers to event sources and firing those
* handlers on passed in events.
@@ -139,6 +138,7 @@
} else {
doAdd(type, handler);
}
+
return new DefaultHandlerRegistration(this, type, handler);
}
@@ -151,7 +151,6 @@
*
* @param event the event
*/
-
public void fireEvent(GwtEvent<?> event) {
// If it not live we should revive it.
if (!event.isLive()) {
@@ -244,8 +243,7 @@
* @return a map of all handlers in this handler manager
*/
Map<GwtEvent.Type<?>, ArrayList<?>> createHandlerInfo() {
- HandlerManager manager = RootPanel.get().getHandlers();
- return manager.registry.map;
+ return registry.map;
}
private void defer(Command command) {
diff --git a/user/src/com/google/gwt/event/shared/HasHandlers.java b/user/src/com/google/gwt/event/shared/HasHandlers.java
index b57a40d..39be193 100644
--- a/user/src/com/google/gwt/event/shared/HasHandlers.java
+++ b/user/src/com/google/gwt/event/shared/HasHandlers.java
@@ -13,20 +13,29 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
-
package com.google.gwt.event.shared;
+import com.google.gwt.event.shared.GwtEvent.Type;
/**
- * An object that implements this interface has a collection of handlers stored
- * in a {@link HandlerManager}.
+ * An object that implements this interface has a collection of event handlers
+ * associated with it.
*/
-
public interface HasHandlers {
+
/**
- * Gets this object's handlers. May return null if there are no handlers.
+ * Determines whether the there are any handlers of the given type. This may
+ * be used to avoid creating events for which there are no handlers.
*
- * @return the handlers
+ * @param type the type of event to be queried
+ * @return <code>true</code> if there are any handlers for this event type
*/
- HandlerManager getHandlers();
+ boolean isEventHandled(Type<?> type);
+
+ /**
+ * Fires the given event to all the appropriate handlers.
+ *
+ * @param event the event to be fired
+ */
+ void fireEvent(GwtEvent<?> event);
}
diff --git a/user/src/com/google/gwt/user/User.gwt.xml b/user/src/com/google/gwt/user/User.gwt.xml
index 70216b7..d701223 100644
--- a/user/src/com/google/gwt/user/User.gwt.xml
+++ b/user/src/com/google/gwt/user/User.gwt.xml
@@ -41,7 +41,7 @@
<inherits name="com.google.gwt.user.Tree"/>
<inherits name="com.google.gwt.user.Hyperlink"/>
<inherits name="com.google.gwt.user.datepicker.DatePicker"/>
- <super-source path="translatable"/>
- <source path="client"/>
-
+
+ <super-source path="translatable"/>
+ <source path="client"/>
</module>
diff --git a/user/src/com/google/gwt/user/client/impl/HistoryImpl.java b/user/src/com/google/gwt/user/client/impl/HistoryImpl.java
index 62e7c75..e25bbf9 100644
--- a/user/src/com/google/gwt/user/client/impl/HistoryImpl.java
+++ b/user/src/com/google/gwt/user/client/impl/HistoryImpl.java
@@ -20,9 +20,11 @@
import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.HasHandlers;
+import com.google.gwt.event.shared.GwtEvent.Type;
/**
* Native implementation associated with
@@ -54,6 +56,10 @@
return handlers.addHandler(ValueChangeEvent.getType(), handler);
}
+ public void fireEvent(GwtEvent<?> event) {
+ handlers.fireEvent(event);
+ }
+
/**
* Fires the {@link ValueChangeEvent} to all handlers with the given tokens.
*/
@@ -67,6 +73,10 @@
public abstract boolean init();
+ public boolean isEventHandled(Type<?> type) {
+ return handlers.isEventHandled(type);
+ }
+
public final void newItem(String historyToken, boolean issueEvent) {
historyToken = (historyToken == null) ? "" : historyToken;
if (!historyToken.equals(getToken())) {
diff --git a/user/src/com/google/gwt/user/client/ui/ListenerWrapper.java b/user/src/com/google/gwt/user/client/ui/ListenerWrapper.java
index 321815d..8e32780 100644
--- a/user/src/com/google/gwt/user/client/ui/ListenerWrapper.java
+++ b/user/src/com/google/gwt/user/client/ui/ListenerWrapper.java
@@ -528,7 +528,7 @@
@SuppressWarnings("unchecked")
static <H extends EventHandler> void baseRemove(Widget eventSource,
EventListener listener, Type... keys) {
- HandlerManager manager = eventSource.getHandlers();
+ HandlerManager manager = eventSource.getHandlerManager();
if (manager != null) {
// This is a direct copy of the baseRemove from
// com.google.gwt.user.client.ListenerWrapper. Change in parallel.
diff --git a/user/src/com/google/gwt/user/client/ui/Widget.java b/user/src/com/google/gwt/user/client/ui/Widget.java
index e544e6a..e0f3676 100644
--- a/user/src/com/google/gwt/user/client/ui/Widget.java
+++ b/user/src/com/google/gwt/user/client/ui/Widget.java
@@ -32,6 +32,7 @@
* {@link com.google.gwt.user.client.ui.Panel panels}.
*/
public class Widget extends UIObject implements EventListener, HasHandlers {
+
/**
* A bit-map of the events that should be sunk when the widget is attached to
* the DOM. (We delay the sinking of events to improve startup performance.)
@@ -45,13 +46,10 @@
private Widget parent;
private HandlerManager handlerManager;
- /**
- * Returns this widget's {@link HandlerManager} used for event management.
- *
- * @return the handler manager
- */
- public final HandlerManager getHandlers() {
- return handlerManager;
+ public void fireEvent(GwtEvent<?> event) {
+ if (handlerManager != null) {
+ handlerManager.fireEvent(event);
+ }
}
/**
@@ -74,16 +72,6 @@
return attached;
}
- /**
- * Returns true if the widget has handlers of the given type. Used by some
- * widget implementations to be lazy about initializing dom event handlers
- * (e.g. a click handler on a checkbox) until the first relevant logical event
- * handler is attached (e.g. in the <code>addValueChangeHandler</code>
- * method).
- *
- * @param type the event type
- * @return true if the widget has handlers of the give type
- */
public boolean isEventHandled(GwtEvent.Type<?> type) {
return handlerManager != null && handlerManager.isEventHandled(type);
}
@@ -106,7 +94,7 @@
return;
}
}
- DomEvent.fireNativeEvent(event, handlerManager);
+ DomEvent.fireNativeEvent(event, this);
}
/**
@@ -215,18 +203,6 @@
}
/**
- * Fires an event. Usually used when passing an event from one source to
- * another.
- *
- * @param event the event
- */
- protected void fireEvent(GwtEvent<?> event) {
- if (handlerManager != null) {
- handlerManager.fireEvent(event);
- }
- }
-
- /**
* Has this widget ever been attached?
*
* @return true if this widget ever been attached to the DOM, false otherwise
@@ -328,6 +304,10 @@
: handlerManager;
}
+ HandlerManager getHandlerManager() {
+ return handlerManager;
+ }
+
/**
* Gets the panel-defined layout data associated with this widget.
*
diff --git a/user/src/com/google/gwt/user/datepicker/client/DateChangeEvent.java b/user/src/com/google/gwt/user/datepicker/client/DateChangeEvent.java
index 940637a..75586ef 100644
--- a/user/src/com/google/gwt/user/datepicker/client/DateChangeEvent.java
+++ b/user/src/com/google/gwt/user/datepicker/client/DateChangeEvent.java
@@ -41,7 +41,7 @@
public static <S extends HasValueChangeHandlers<Date> & HasHandlers> void fireIfNotEqualDates(
S source, Date oldValue, Date newValue) {
if (ValueChangeEvent.shouldFire(source, oldValue, newValue)) {
- source.getHandlers().fireEvent(new DateChangeEvent(newValue));
+ source.fireEvent(new DateChangeEvent(newValue));
}
}
diff --git a/user/test/com/google/gwt/user/client/ui/DisclosurePanelTest.java b/user/test/com/google/gwt/user/client/ui/DisclosurePanelTest.java
index 6039eea..41c8828 100644
--- a/user/test/com/google/gwt/user/client/ui/DisclosurePanelTest.java
+++ b/user/test/com/google/gwt/user/client/ui/DisclosurePanelTest.java
@@ -81,14 +81,14 @@
public void testEvents() {
final DisclosurePanel panel = createTestPanel();
- assertEquals(1, panel.getHandlers().getHandlerCount(CloseEvent.getType()));
+ assertEquals(1, panel.getHandlerManager().getHandlerCount(CloseEvent.getType()));
panel.addCloseHandler(new CloseHandler<DisclosurePanel>() {
public void onClose(CloseEvent<DisclosurePanel> event) {
// for now nothing.
}
});
- assertEquals(2, panel.getHandlers().getHandlerCount(CloseEvent.getType()));
+ assertEquals(2, panel.getHandlerManager().getHandlerCount(CloseEvent.getType()));
}
/**
@@ -126,8 +126,8 @@
panel.addEventHandler(handleA);
panel.addEventHandler(handleB);
// There is one to begin with.
- assertEquals(3, panel.getHandlers().getHandlerCount(CloseEvent.getType()));
- assertEquals(3, panel.getHandlers().getHandlerCount(OpenEvent.getType()));
+ assertEquals(3, panel.getHandlerManager().getHandlerCount(CloseEvent.getType()));
+ assertEquals(3, panel.getHandlerManager().getHandlerCount(OpenEvent.getType()));
panel.setOpen(true);
// We expect onOpen to fire and onClose to not fire.
@@ -144,8 +144,8 @@
aDidFire[OPEN] = bDidFire[CLOSE] = false;
panel.removeEventHandler(handleB);
- assertEquals(2, panel.getHandlers().getHandlerCount(OpenEvent.getType()));
- assertEquals(2, panel.getHandlers().getHandlerCount(CloseEvent.getType()));
+ assertEquals(2, panel.getHandlerManager().getHandlerCount(OpenEvent.getType()));
+ assertEquals(2, panel.getHandlerManager().getHandlerCount(CloseEvent.getType()));
panel.setOpen(true);
panel.setOpen(false);
diff --git a/user/test/com/google/gwt/user/datepicker/client/DateChangeEventTest.java b/user/test/com/google/gwt/user/datepicker/client/DateChangeEventTest.java
index b8c5361..ca2c335 100644
--- a/user/test/com/google/gwt/user/datepicker/client/DateChangeEventTest.java
+++ b/user/test/com/google/gwt/user/datepicker/client/DateChangeEventTest.java
@@ -18,8 +18,10 @@
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.GwtEvent.Type;
import com.google.gwt.user.client.ui.DateValueChangeTester;
import com.google.gwt.user.client.ui.HasValue;
@@ -41,6 +43,10 @@
return handlers.addHandler(ValueChangeEvent.getType(), handler);
}
+ public void fireEvent(GwtEvent<?> event) {
+ handlers.fireEvent(event);
+ }
+
public HandlerManager getHandlers() {
return handlers;
}
@@ -49,6 +55,10 @@
return value;
}
+ public boolean isEventHandled(Type<?> type) {
+ return handlers.isEventHandled(type);
+ }
+
public void setValue(Date value) {
setValue(value, false);
}
@@ -65,5 +75,4 @@
public void testValueChangeViaHasValue() {
new DateValueChangeTester(new MockWidget()).run();
}
-
}