Allow a SuggestBox to be created with a ValueBoxBase<String> instead of a TextBox. Deprecates the getTextBox() method in favor of getValueBox(). Contributed by: seanross Fixes issue 7571 Review at https://codereview.appspot.com/6492092/ git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@11260 8db76d5a-ed1c-0410-87a9-c151d255dfc7
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 58f7d9f..650372a 100644 --- a/user/src/com/google/gwt/user/client/ui/SuggestBox.java +++ b/user/src/com/google/gwt/user/client/ui/SuggestBox.java
@@ -97,11 +97,9 @@ * <dd>the suggest box itself</dd> * </dl> * - * TODO(pdr): Add SafeHtml support to this and implementing classes. - * * @see SuggestOracle * @see MultiWordSuggestOracle - * @see TextBoxBase + * @see ValueBoxBase */ @SuppressWarnings("deprecation") public class SuggestBox extends Composite implements HasText, HasFocus, @@ -666,7 +664,7 @@ private String currentText; private LeafValueEditor<String> editor; private final SuggestionDisplay display; - private final TextBoxBase box; + private final ValueBoxBase<String> box; private final Callback callback = new Callback() { public void onSuggestionsReady(Request request, Response response) { // If disabled while request was in-flight, drop it @@ -713,7 +711,7 @@ * text widget * @param box the text widget */ - public SuggestBox(SuggestOracle oracle, TextBoxBase box) { + public SuggestBox(SuggestOracle oracle, ValueBoxBase<String> box) { this(oracle, box, new DefaultSuggestionDisplay()); } @@ -726,7 +724,7 @@ * @param box the text widget * @param suggestDisplay the class used to display suggestions */ - public SuggestBox(SuggestOracle oracle, TextBoxBase box, + public SuggestBox(SuggestOracle oracle, ValueBoxBase<String> box, SuggestionDisplay suggestDisplay) { this.box = box; this.display = suggestDisplay; @@ -873,9 +871,13 @@ * Get the text box associated with this suggest box. * * @return this suggest box's text box + * @throws ClassCastException if this suggest box's value box is not an + * instance of TextBoxBase + * @deprecated in favour of getValueBox */ + @Deprecated public TextBoxBase getTextBox() { - return box; + return (TextBoxBase) box; } public String getValue() { @@ -883,6 +885,15 @@ } /** + * Get the ValueBoxBase associated with this suggest box. + * + * @return this suggest box's value box + */ + public ValueBoxBase<String> getValueBox() { + return box; + } + + /** * Hide current suggestions in the {@link DefaultSuggestionDisplay}. Note that * this method is a no-op unless the {@link DefaultSuggestionDisplay} is used. *