Fixes issue 3194 by deprecating all the listener sources interfaces.
Review by:jlabanca

git-svn-id: https://google-web-toolkit.googlecode.com/svn/releases/1.6@4331 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/FiresDisclosureEvents.java b/user/src/com/google/gwt/user/client/ui/FiresDisclosureEvents.java
index 6ea43b2..2731117 100644
--- a/user/src/com/google/gwt/user/client/ui/FiresDisclosureEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/FiresDisclosureEvents.java
@@ -15,12 +15,18 @@
  */
 package com.google.gwt.user.client.ui;
 
+
 /**
- * A widget that implements this interface fires the events defined by
- * the {@link DisclosureHandler} interface.
+ * A widget that implements this interface fires the events defined by the
+ * {@link DisclosureHandler} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.logical.shared.HasOpenHandlers}
+ *             and {@link com.google.gwt.event.logical.shared.HasCloseHandlers}
+ *             instead
  */
+@Deprecated
 public interface FiresDisclosureEvents {
-  
+
   /**
    * Adds a handler interface to receive open events.
    * 
@@ -29,7 +35,7 @@
    */
   @Deprecated
   void addEventHandler(DisclosureHandler handler);
-  
+
   /**
    * Removes a previously added handler interface.
    * 
diff --git a/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java b/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java
index a4a6541..a99535e 100644
--- a/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/FiresFormEvents.java
@@ -18,15 +18,19 @@
 /**
  * A widget that implements this interface fires the events defined by the
  * {@link com.google.gwt.user.client.ui.FormHandler} interface.
+ * 
+ * @deprecated Only {@link FormPanel} was expected to use this interface.
+ *             Instead, it now uses {@link FormPanel.SubmitCompleteEvent} and
+ *             {@link SubmitEvent}.
  */
-
+@Deprecated
 public interface FiresFormEvents {
 
   /**
    * Adds a handler interface to receive click events.
    * 
    * @deprecated use {@link FormPanel#addSubmitCompleteHandler} and
-   * {@link FormPanel#addSubmitHandler} instead
+   *             {@link FormPanel#addSubmitHandler} instead
    * @param handler the handler interface to add
    */
   @Deprecated
diff --git a/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java b/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java
index 1e24d57..0627a6f 100644
--- a/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/FiresSuggestionEvents.java
@@ -18,7 +18,12 @@
 /**
  * A widget that implements this interface fires the events defined by the
  * {@link SuggestionHandler} interface.
+ * 
+ * @deprecated use
+ *             {@link com.google.gwt.event.logical.shared.HasSelectionHandlers}
+ *             instead.
  */
+@Deprecated
 public interface FiresSuggestionEvents {
 
   /**
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 a8feb75..a0665f6 100644
--- a/user/src/com/google/gwt/user/client/ui/FocusPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/FocusPanel.java
@@ -50,6 +50,7 @@
  * A simple panel that makes its contents focusable, and adds the ability to
  * catch mouse and keyboard events.
  */
+@SuppressWarnings("deprecation")
 public class FocusPanel extends SimplePanel implements HasFocus,
     SourcesClickEvents, SourcesMouseEvents, SourcesMouseWheelEvents,
     HasAllMouseHandlers, HasClickHandlers, HasAllKeyHandlers,
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 2c0757a..7cdcb13 100644
--- a/user/src/com/google/gwt/user/client/ui/FocusWidget.java
+++ b/user/src/com/google/gwt/user/client/ui/FocusWidget.java
@@ -51,6 +51,7 @@
 /**
  * Abstract base class for most widgets that can receive keyboard focus.
  */
+@SuppressWarnings("deprecation")
 public abstract class FocusWidget extends Widget implements SourcesClickEvents,
     HasClickHandlers, HasFocus, HasAllFocusHandlers, HasAllKeyHandlers,
     HasAllMouseHandlers, SourcesMouseEvents {
diff --git a/user/src/com/google/gwt/user/client/ui/FormPanel.java b/user/src/com/google/gwt/user/client/ui/FormPanel.java
index 8b489e3..619849e 100644
--- a/user/src/com/google/gwt/user/client/ui/FormPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/FormPanel.java
@@ -59,6 +59,7 @@
  * {@example com.google.gwt.examples.FormPanelExample}
  * </p>
  */
+@SuppressWarnings("deprecation")
 public class FormPanel extends SimplePanel implements FiresFormEvents,
     FormPanelImplHost {
   /**
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 0899be8..77bd5eb 100644
--- a/user/src/com/google/gwt/user/client/ui/HTMLTable.java
+++ b/user/src/com/google/gwt/user/client/ui/HTMLTable.java
@@ -37,6 +37,7 @@
  * <img class='gallery' src='Table.png'/>
  * </p>
  */
+@SuppressWarnings("deprecation")
 public abstract class HTMLTable extends Panel implements SourcesTableEvents,
     HasClickHandlers {
   
diff --git a/user/src/com/google/gwt/user/client/ui/HasFocus.java b/user/src/com/google/gwt/user/client/ui/HasFocus.java
index 6fb4b75..c869bd4 100644
--- a/user/src/com/google/gwt/user/client/ui/HasFocus.java
+++ b/user/src/com/google/gwt/user/client/ui/HasFocus.java
@@ -18,6 +18,7 @@
 /**
  * A widget that implements this interface can receive keyboard focus.
  */
+@SuppressWarnings("deprecation")
 public interface HasFocus extends SourcesFocusEvents, SourcesKeyboardEvents {
 
   /**
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 467a729..c4ceead 100644
--- a/user/src/com/google/gwt/user/client/ui/Hyperlink.java
+++ b/user/src/com/google/gwt/user/client/ui/Hyperlink.java
@@ -51,6 +51,7 @@
  * <h3>Example</h3> {@example com.google.gwt.examples.HistoryExample}
  * </p>
  */
+@SuppressWarnings("deprecation")
 public class Hyperlink extends Widget implements HasHTML, SourcesClickEvents,
     HasClickHandlers {
 
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 09d968c..7ddfeff 100644
--- a/user/src/com/google/gwt/user/client/ui/Image.java
+++ b/user/src/com/google/gwt/user/client/ui/Image.java
@@ -85,6 +85,7 @@
  * {@example com.google.gwt.examples.ImageExample}
  * </p>
  */
+@SuppressWarnings("deprecation")
 public class Image extends Widget implements SourcesLoadEvents,
     HasLoadHandlers, HasErrorHandlers, SourcesClickEvents, HasClickHandlers,
     HasAllMouseHandlers, SourcesMouseEvents {
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 b470fd8..89a7ef9 100644
--- a/user/src/com/google/gwt/user/client/ui/Label.java
+++ b/user/src/com/google/gwt/user/client/ui/Label.java
@@ -53,6 +53,7 @@
  * {@example com.google.gwt.examples.HTMLExample}
  * </p>
  */
+@SuppressWarnings("deprecation")
 public class Label extends Widget implements HasHorizontalAlignment, HasText,
     HasWordWrap, HasDirection, HasClickHandlers, SourcesClickEvents,
     SourcesMouseEvents, HasAllMouseHandlers {
diff --git a/user/src/com/google/gwt/user/client/ui/ListBox.java b/user/src/com/google/gwt/user/client/ui/ListBox.java
index 9a10f59..d94c1f3 100644
--- a/user/src/com/google/gwt/user/client/ui/ListBox.java
+++ b/user/src/com/google/gwt/user/client/ui/ListBox.java
@@ -42,6 +42,7 @@
  * {@example com.google.gwt.examples.ListBoxExample}
  * </p>
  */
+@SuppressWarnings("deprecation")
 public class ListBox extends FocusWidget implements SourcesChangeEvents,
     HasChangeHandlers, HasName {
 
diff --git a/user/src/com/google/gwt/user/client/ui/PopupPanel.java b/user/src/com/google/gwt/user/client/ui/PopupPanel.java
index 2792e80..d8e581e 100644
--- a/user/src/com/google/gwt/user/client/ui/PopupPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/PopupPanel.java
@@ -60,6 +60,7 @@
  * <li>.gwt-PopupPanel .popupContent { the wrapper around the content }</li>
  * </ul>
  */
+@SuppressWarnings("deprecation")
 public class PopupPanel extends SimplePanel implements SourcesPopupEvents,
     EventPreview, HasAnimation, HasCloseHandlers<PopupPanel> {
 
diff --git a/user/src/com/google/gwt/user/client/ui/RichTextArea.java b/user/src/com/google/gwt/user/client/ui/RichTextArea.java
index 86faa94..1b9860f 100644
--- a/user/src/com/google/gwt/user/client/ui/RichTextArea.java
+++ b/user/src/com/google/gwt/user/client/ui/RichTextArea.java
@@ -38,6 +38,7 @@
  * <li>.gwt-RichTextArea { }</li>
  * </ul>
  */
+@SuppressWarnings("deprecation")
 public class RichTextArea extends FocusWidget implements HasHTML,
     SourcesMouseEvents, HasAllMouseHandlers {
 
diff --git a/user/src/com/google/gwt/user/client/ui/ScrollPanel.java b/user/src/com/google/gwt/user/client/ui/ScrollPanel.java
index 2145f78..7669844 100644
--- a/user/src/com/google/gwt/user/client/ui/ScrollPanel.java
+++ b/user/src/com/google/gwt/user/client/ui/ScrollPanel.java
@@ -25,6 +25,7 @@
 /**
  * A simple panel that wraps its contents in a scrollable area.
  */
+@SuppressWarnings("deprecation")
 public class ScrollPanel extends SimplePanel implements SourcesScrollEvents,
     HasScrollHandlers {
 
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesChangeEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesChangeEvents.java
index 57b71bc..27f6c16 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesChangeEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesChangeEvents.java
@@ -18,8 +18,11 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.ChangeListener} interface.
+ * 
+ * @deprecated Use {@link com.google.gwt.event.dom.client.HasChangeHandlers}
+ *             instead
  */
-
+@Deprecated
 public interface SourcesChangeEvents {
 
   /**
@@ -34,7 +37,7 @@
   /**
    * Removes a previously added listener interface.
    * 
-   * @param listener the listener interface to remove 
+   * @param listener the listener interface to remove
    */
   @Deprecated
   void removeChangeListener(ChangeListener listener);
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesClickEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesClickEvents.java
index 3ee84cf..36d2c36 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesClickEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesClickEvents.java
@@ -18,7 +18,11 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.ClickListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.dom.client.HasClickHandlers}
+ *             instead
  */
+@Deprecated
 public interface SourcesClickEvents {
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesFocusEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesFocusEvents.java
index 44ea83d..6f56adb 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesFocusEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesFocusEvents.java
@@ -19,7 +19,10 @@
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.FocusListener} interface.
  * 
+ * @deprecated use {@link com.google.gwt.event.dom.client.HasAllFocusHandlers}
+ *             instead
  */
+@Deprecated
 public interface SourcesFocusEvents {
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesKeyboardEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesKeyboardEvents.java
index 8e7d4f3..3da6db4 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesKeyboardEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesKeyboardEvents.java
@@ -18,14 +18,19 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.KeyboardListener} interface.
+ * @deprecated use {@link com.google.gwt.com.google.gwt.event.dom.client.HasAllKeyHandlers}
+ * instead
  */
+@Deprecated
 public interface SourcesKeyboardEvents {
 
   /**
    * Adds a listener interface to receive keyboard events.
    * 
    * @param listener the listener interface to add
-   * @deprecated use <code>addKeyPressHandler/addKeyDownKeyDownHandler/addKeyUpHandler</code> instead
+   * @deprecated use
+   *             <code>addKeyPressHandler/addKeyDownKeyDownHandler/addKeyUpHandler</code>
+   *             instead
    */
   @Deprecated
   void addKeyboardListener(KeyboardListener listener);
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesLoadEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesLoadEvents.java
index a8c9484..1536e55 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesLoadEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesLoadEvents.java
@@ -18,7 +18,11 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.LoadListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.dom.client.HasErrorHandlers} and
+ *             {@link com.google.gwt.event.dom.client.HasLoadHandlers} instead
  */
+@Deprecated
 public interface SourcesLoadEvents {
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesMouseEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesMouseEvents.java
index 3c0539f..ce3c60a 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesMouseEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesMouseEvents.java
@@ -18,14 +18,19 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.MouseListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.dom.client.HasAllMouseHandlerss}
+ *             instead
  */
+@Deprecated
 public interface SourcesMouseEvents {
 
   /**
    * Adds a listener interface to receive mouse events.
    * 
    * @param listener the listener interface to add
-   * @deprecated use <code>addMouse(Down/Up/Over/Out/Move/Scroll)Handler</code> instead
+   * @deprecated use <code>addMouse(Down/Up/Over/Out/Move/Scroll)Handler</code>
+   *             instead
    */
   @Deprecated
   void addMouseListener(MouseListener listener);
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesMouseWheelEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesMouseWheelEvents.java
index b8ff921..c003da6 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesMouseWheelEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesMouseWheelEvents.java
@@ -1,12 +1,12 @@
 /*
  * Copyright 2007 Google Inc.
- *
+ * 
  * 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
@@ -18,12 +18,15 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.MouseWheelListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.dom.client.HasMouseDownHandlers}
+ *             instead
  */
 public interface SourcesMouseWheelEvents {
 
   /**
    * Adds a listener interface to receive mouse events.
-   *
+   * 
    * @param listener the listener interface to add
    * @deprecated use <code>addMouseWheelHandler</code>
    */
@@ -32,7 +35,7 @@
 
   /**
    * Removes a previously added listener interface.
-   *
+   * 
    * @param listener the listener interface to remove
    */
   @Deprecated
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesPopupEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesPopupEvents.java
index 8276160..6b3ec61 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesPopupEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesPopupEvents.java
@@ -18,7 +18,11 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.PopupListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.logical.shared.HasCloseHandlers}
+ *             instead
  */
+@Deprecated
 public interface SourcesPopupEvents {
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java
index 178aeff..fd785e2 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesScrollEvents.java
@@ -18,7 +18,11 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.ScrollListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.dom.client.HasScrollHandlers}
+ *             instead
  */
+@Deprecated
 public interface SourcesScrollEvents {
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java
index 1f3cf19..709d98e 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesTabEvents.java
@@ -15,10 +15,17 @@
  */
 package com.google.gwt.user.client.ui;
 
+
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.TabListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.logical.shared.SelectionHandler}
+ *             and
+ *             {@link com.google.gwt.event.logical.shared.HasBeforeSelectionHandlers}
+ *             instead
  */
+@Deprecated
 public interface SourcesTabEvents {
 
   /**
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java
index 03e05a1..6ffd7d0 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesTableEvents.java
@@ -18,7 +18,12 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.TableListener} interface.
+ * 
+ * @deprecated use {@link com.google.gwt.event.dom.client.HasClickHandlers}
+ *             instead. Event sources should implement methods similar to
+ *             {@link HTMLTable#getCellForEvent(com.google.gwt.event.dom.client.ClickEvent)}
  */
+@Deprecated
 public interface SourcesTableEvents {
 
   /**
@@ -37,4 +42,4 @@
    */
   @Deprecated
   void removeTableListener(TableListener listener);
-}
\ No newline at end of file
+}
diff --git a/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java b/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java
index 519e148..4f7e8fe 100644
--- a/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java
+++ b/user/src/com/google/gwt/user/client/ui/SourcesTreeEvents.java
@@ -18,14 +18,22 @@
 /**
  * A widget that implements this interface sources the events defined by the
  * {@link com.google.gwt.user.client.ui.TreeListener} interface.
+ * 
+ * @deprecated use
+ *             {@link com.google.gwt.event.logical.shared.HasBeforeSelectionHandlers}
+ *             , {@link com.google.gwt.event.logical.shared.HasOpenHandlers},
+ *             {@link com.google.gwt.event.logical.shared.HasClickHandlers}
+ *             instead
  */
+@Deprecated
 public interface SourcesTreeEvents {
 
   /**
    * Adds a listener interface to receive tree events.
    * 
    * @param listener the listener interface to add
-   * @deprecated use addSelectionHandler,addOpenHandler, and addCloseHandler instead
+   * @deprecated use addSelectionHandler,addOpenHandler, and addCloseHandler
+   *             instead
    */
   @Deprecated
   void addTreeListener(TreeListener listener);
diff --git a/user/src/com/google/gwt/user/client/ui/SuggestBox.java b/user/src/com/google/gwt/user/client/ui/SuggestBox.java
index f9ec7da..8fd59b2 100644
--- a/user/src/com/google/gwt/user/client/ui/SuggestBox.java
+++ b/user/src/com/google/gwt/user/client/ui/SuggestBox.java
@@ -121,6 +121,7 @@
  * @see MultiWordSuggestOracle
  * @see TextBoxBase
  */
+@SuppressWarnings("deprecation")
 public class SuggestBox extends Composite implements HasText, HasFocus,
     HasAnimation, SourcesClickEvents, SourcesFocusEvents, SourcesChangeEvents,
     SourcesKeyboardEvents, FiresSuggestionEvents, HasAllKeyHandlers,
diff --git a/user/src/com/google/gwt/user/client/ui/TextBoxBase.java b/user/src/com/google/gwt/user/client/ui/TextBoxBase.java
index 3a8554e..62a6d9a 100644
--- a/user/src/com/google/gwt/user/client/ui/TextBoxBase.java
+++ b/user/src/com/google/gwt/user/client/ui/TextBoxBase.java
@@ -30,6 +30,7 @@
 /**
  * Abstract base class for all text entry widgets.
  */
+@SuppressWarnings("deprecation")
 public class TextBoxBase extends FocusWidget implements SourcesChangeEvents,
     HasChangeHandlers, HasText, HasName, HasValue<String> {