Index: test/com/google/gwt/gen2/selection/client/DropDownListBoxTest.java
===================================================================
--- test/com/google/gwt/gen2/selection/client/DropDownListBoxTest.java	(revision 1085)
+++ test/com/google/gwt/gen2/selection/client/DropDownListBoxTest.java	(working copy)
@@ -70,7 +70,7 @@
 
   private void globalHelper(CustomListBox customBox) {
     basicHelper(customBox);
-    customBox.setSelectedValue(null);
+    customBox.setValue(null);
     updateHelper(customBox);
   }
 
@@ -79,15 +79,15 @@
   }
 
   private void updateHelper(CustomListBox customBox) {
-    customBox.setSelectedValue("Abigail Crutcher");
+    customBox.setValue("Abigail Crutcher");
     assertEquals(null, oldValue);
     assertEquals("Abigail Crutcher", newValue);
-    customBox.setSelectedValue("Henry Crutcher");
+    customBox.setValue("Henry Crutcher");
     assertEquals("Abigail Crutcher", oldValue);
     assertEquals("Henry Crutcher", newValue);
     customBox.addSeparator();
     customBox.addItem("Helen", "Helen Chapman", "My mother");
-    customBox.setSelectedValue("Helen Chapman");
+    customBox.setValue("Helen Chapman");
     assertEquals("Henry Crutcher", oldValue);
     assertEquals("Helen Chapman", newValue);
   }
Index: src/com/google/gwt/demos/datepicker/client/DatePickerDemo.java
===================================================================
--- src/com/google/gwt/demos/datepicker/client/DatePickerDemo.java	(revision 1085)
+++ src/com/google/gwt/demos/datepicker/client/DatePickerDemo.java	(working copy)
@@ -240,7 +240,7 @@
     Date d = new Date();
     d.setMonth(2);
     d.setDate(1);
-    picker.setSelectedDate(d);
+    picker.setValue(d);
     return picker;
   }
 
Index: src/com/google/gwt/widgetideas/datepicker/client/DateBox.java
===================================================================
--- src/com/google/gwt/widgetideas/datepicker/client/DateBox.java	(revision 1085)
+++ src/com/google/gwt/widgetideas/datepicker/client/DateBox.java	(working copy)
@@ -246,7 +246,7 @@
       String cur = box.getText();
       if (cur != null && cur.length() != 0) {
         try {
-          box.setText(formatter.format(picker.getSelectedDate()));
+          box.setText(formatter.format(picker.getValue()));
         } catch (IllegalArgumentException e) {
           box.setText("");
         }
Index: src/com/google/gwt/widgetideas/datepicker/client/DateTimePicker.java
===================================================================
--- src/com/google/gwt/widgetideas/datepicker/client/DateTimePicker.java	(revision 1085)
+++ src/com/google/gwt/widgetideas/datepicker/client/DateTimePicker.java	(working copy)
@@ -62,7 +62,7 @@
     verticalPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
     verticalPanel.add(datePicker);
     datePicker.setWidth("100%");
-    datePicker.setHighlightedDate(datePicker.getSelectedDate());
+    datePicker.setHighlightedDate(datePicker.getValue());
     verticalPanel.add(timePicker);
     timePicker.addChangeHandler(timePickerChangeHandler);
     datePicker.addChangeHandler(datePickerChangeHandler);
Index: src/com/google/gwt/widgetideas/datepicker/client/DatePicker.java
===================================================================
--- src/com/google/gwt/widgetideas/datepicker/client/DatePicker.java	(revision 1085)
+++ src/com/google/gwt/widgetideas/datepicker/client/DatePicker.java	(working copy)
@@ -18,6 +18,7 @@
 
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.HasValue;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.widgetideas.client.event.ChangeEvent;
 import com.google.gwt.widgetideas.client.event.ChangeHandler;
@@ -39,7 +40,7 @@
  * Date picker.
  */
 public class DatePicker extends Composite implements FiresChangeEvents<Date>,
-    FiresHighlightEvents<Date>, FiresRenderingEvents {
+    FiresHighlightEvents<Date>, FiresRenderingEvents, HasValue<Date> {
 
   /**
    * Styles used for the DatePicker family of widgets.
@@ -259,7 +260,7 @@
   /**
    * Gets the selected date, if any.
    */
-  public final Date getSelectedDate() {
+  public final Date getValue() {
     return selectedDate;
   }
 
@@ -326,7 +327,7 @@
    * Selects the current highlighted date.
    */
   public final void selectHighlightedDate() {
-    setSelectedDate(getHighlightedDate());
+    setValue(getHighlightedDate());
   }
 
   /**
@@ -342,7 +343,7 @@
   /**
    * Sets the selected date.
    */
-  public final void setSelectedDate(Date date) {
+  public final void setValue(Date date) {
     setSelectedDate(date, true);
   }
 
Index: src/com/google/gwt/widgetideas/datepicker/client/SimpleCalendarView.java
===================================================================
--- src/com/google/gwt/widgetideas/datepicker/client/SimpleCalendarView.java	(revision 1085)
+++ src/com/google/gwt/widgetideas/datepicker/client/SimpleCalendarView.java	(working copy)
@@ -68,7 +68,7 @@
           return;
         }
 
-        getDatePicker().setSelectedDate(date);
+        getDatePicker().setValue(date);
         if (isFiller()) {
           getDatePicker().showDate(date);
         }
Index: src/com/google/gwt/gen2/selection/client/CustomListBox.java
===================================================================
--- src/com/google/gwt/gen2/selection/client/CustomListBox.java	(revision 1085)
+++ src/com/google/gwt/gen2/selection/client/CustomListBox.java	(working copy)
@@ -27,6 +27,7 @@
 import com.google.gwt.gen2.widgetbase.client.Gen2Composite;
 import com.google.gwt.gen2.widgetbase.client.WidgetCss;
 import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.ui.HasValue;
 import com.google.gwt.user.client.ui.Widget;
 
 import java.util.HashMap;
@@ -42,7 +43,7 @@
  * @param <ValueType> the type of the values backing this list box
  */
 public abstract class CustomListBox<ValueType> extends Gen2Composite<Widget>
-    implements HasSelectionHandlers<ValueType> {
+    implements HasSelectionHandlers<ValueType>, HasValue<ValueType> {
 
   /**
    * Interface used to allow the widget access to css style names. <p/> The
@@ -176,8 +177,6 @@
       }
     }
 
-    private Cell oldCell;
-
     private HashMap<ValueType, Cell> valueToCell = new HashMap<ValueType, Cell>();
 
     public ItemList() {
@@ -324,7 +323,7 @@
    * 
    * @param value the selected value
    */
-  public final void setSelectedValue(ValueType value) {
+  public final void setValue(ValueType value) {
     itemList.setSelectedValue(value);
   }
 
Index: src/com/google/gwt/gen2/selection/client/DropDownListBox.java
===================================================================
--- src/com/google/gwt/gen2/selection/client/DropDownListBox.java	(revision 1085)
+++ src/com/google/gwt/gen2/selection/client/DropDownListBox.java	(working copy)
@@ -225,7 +225,7 @@
   /**
    * Gets the selected value.
    */
-  public ValueType getSelectedValue() {
+  public ValueType getValue() {
     return super.getLastSelectedValue();
   }
 
Index: src/com/google/gwt/user/client/ui/HasValue.java
===================================================================
--- src/com/google/gwt/user/client/ui/HasValue.java	(revision 0)
+++ src/com/google/gwt/user/client/ui/HasValue.java	(revision 0)
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2006 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
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.user.client.ui;
+
+/**
+ * An object that implements this interface contains a value of type T, which
+ * can be set and retrieved using these methods.
+ */
+public interface HasValue<T> {
+
+  /**
+   * Gets this object's value.
+   * 
+   * @return the object's value
+   */
+  T getValue();
+
+  /**
+   * Sets this object's value.
+   * 
+   * @param text the object's new value
+   */
+  void setValue(T value);
+}
Index: src-demo/com/google/gwt/gen2/demo/dropdownlistbox/client/DropDownListBoxDemo.java
===================================================================
--- src-demo/com/google/gwt/gen2/demo/dropdownlistbox/client/DropDownListBoxDemo.java	(revision 1085)
+++ src-demo/com/google/gwt/gen2/demo/dropdownlistbox/client/DropDownListBoxDemo.java	(working copy)
@@ -113,7 +113,7 @@
           nextAction = "click to choose Abby";
           break;
         case 0:
-          customBox.setSelectedValue("Abigail Crutcher");
+          customBox.setValue("Abigail Crutcher");
           customBox.showItems();
           lastAction = "current value is Abby. ";
           check("Abigail Crutcher", currentValue,
@@ -121,14 +121,14 @@
           nextAction = "click to choose Henry";
           break;
         case 1:
-          customBox.setSelectedValue("Henry Crutcher");
+          customBox.setValue("Henry Crutcher");
           lastAction = "Henry should be selected<br/> Popup should be closed";
           nextAction = "Manual: choose Katie";
           break;
         case 2:
           if (!"Kaitlyn Crutcher".equals(currentValue)) {
             Window.alert("Uh oh, Katie was not chosen. Instead we have:"
-                + customBox.getSelectedValue());
+                + customBox.getValue());
             katieWasChosen = false;
             lastAction = "Katie was not succesfully chosen";
           } else {
