Change AbstractHasData.getValueKey() to be visible to CellTable API users, since this is needed in creating custom CellTableBuilder.

Review at http://gwt-code-reviews.appspot.com/1509807

Review by: jlabanca@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10510 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/cellview/client/AbstractHasData.java b/user/src/com/google/gwt/user/cellview/client/AbstractHasData.java
index 25c3f04..6ce8516 100644
--- a/user/src/com/google/gwt/user/cellview/client/AbstractHasData.java
+++ b/user/src/com/google/gwt/user/cellview/client/AbstractHasData.java
@@ -642,6 +642,19 @@
     return tabIndex;
   }
 
+  /**
+   * Get the key for the specified value. If a keyProvider is not specified or the value is null,
+   * the value is returned. If the key provider is specified, it is used to get the key from
+   * the value.
+   * 
+   * @param value the value
+   * @return the key
+   */
+  public Object getValueKey(T value) {
+    ProvidesKey<T> keyProvider = getKeyProvider();
+    return (keyProvider == null || value == null) ? value : keyProvider.getKey(value);
+  }
+  
   @Override
   public T getVisibleItem(int indexOnPage) {
     checkRowBounds(indexOnPage);
@@ -935,7 +948,7 @@
     this.tabIndex = index;
     setKeyboardSelected(getKeyboardSelectedRow(), true, false);
   }
-
+  
   @Override
   public final void setVisibleRange(int start, int length) {
     setVisibleRange(new Range(start, length));
@@ -1020,17 +1033,6 @@
   protected abstract Element getKeyboardSelectedElement();
 
   /**
-   * Get the key for the specified value.
-   * 
-   * @param value the value
-   * @return the key
-   */
-  protected Object getValueKey(T value) {
-    ProvidesKey<T> keyProvider = getKeyProvider();
-    return (keyProvider == null || value == null) ? value : keyProvider.getKey(value);
-  }
-
-  /**
    * Check if keyboard navigation is being suppressed, such as when the user is
    * editing a cell.
    *