Let ValueListBox implement HasEnabled

fixes issue 6112

Change-Id: Ib866657960d0a3d41e0b3b1f08fa9a97091149a9
diff --git a/user/src/com/google/gwt/user/client/ui/ValueListBox.java b/user/src/com/google/gwt/user/client/ui/ValueListBox.java
index 1bdbdf8..61f6f85 100644
--- a/user/src/com/google/gwt/user/client/ui/ValueListBox.java
+++ b/user/src/com/google/gwt/user/client/ui/ValueListBox.java
@@ -42,7 +42,8 @@
  * @param <T> the value type
  */
 public class ValueListBox<T> extends Composite implements
-    Focusable, HasConstrainedValue<T>, IsEditor<TakesValueEditor<T>> {
+    Focusable, HasConstrainedValue<T>, HasEnabled,
+    IsEditor<TakesValueEditor<T>> {
 
   private final List<T> values = new ArrayList<T>();
   private final Map<Object, Integer> valueKeyToIndex = new HashMap<Object, Integer>();
@@ -97,6 +98,11 @@
     return value;
   }
 
+  @Override
+  public boolean isEnabled() {
+    return getListBox().isEnabled();
+  }
+
   public void setAcceptableValues(Collection<T> newValues) {
     values.clear();
     valueKeyToIndex.clear();
@@ -116,6 +122,11 @@
   }
 
   @Override
+  public void setEnabled(boolean enabled) {
+    getListBox().setEnabled(enabled);
+  }
+
+  @Override
   public void setFocus(boolean focused) {
     getListBox().setFocus(focused);
   }
diff --git a/user/test/com/google/gwt/user/client/ui/ValueListBoxTest.java b/user/test/com/google/gwt/user/client/ui/ValueListBoxTest.java
index bc6384e..714de32 100644
--- a/user/test/com/google/gwt/user/client/ui/ValueListBoxTest.java
+++ b/user/test/com/google/gwt/user/client/ui/ValueListBoxTest.java
@@ -65,6 +65,14 @@
     return "com.google.gwt.user.User";
   }
 
+  public void testEnabled() {
+    subject.setEnabled(true);
+    assertTrue(subject.isEnabled());
+
+    subject.setEnabled(false);
+    assertFalse(subject.isEnabled());
+  }
+
   public void xx_testExtraValueSet() {  // TODO(rjrjr) Strange failures on firefox
     Foo[] values = new Foo[] {new Foo("able"), new Foo("baker")};
     Foo baz = new Foo("baz");