Author: jlaba...@google.com Date: Thu Jan 8 13:14:49 2009 New Revision: 4412
Added: releases/1.6/user/test/com/google/gwt/user/client/ui/SuggestBoxTest.java (contents, props changed) Modified: releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTextEvents.java releases/1.6/user/src/com/google/gwt/user/client/ui/CheckBox.java releases/1.6/user/src/com/google/gwt/user/client/ui/PopupPanel.java releases/1.6/user/src/com/google/gwt/user/client/ui/SuggestBox.java releases/1.6/user/src/com/google/gwt/user/client/ui/TextBoxBase.java releases/1.6/user/src/com/google/gwt/user/datepicker/client/DateBox.java releases/1.6/user/test/com/google/gwt/user/UISuite.java releases/1.6/user/test/com/google/gwt/user/client/ui/DateBoxTest.java releases/1.6/user/test/com/google/gwt/user/client/ui/PopupTest.java Log: Adds a PopupPanel.isShowing() method, implements PopupPanel.isVisible() to match PopupPanel.setVisible(), and fully defines the difference between setVisible()/show()/hide(). This patch also removes the ChangeHandler from TextBoxBase in favor of the ValueChangeHandler. Patch by: jlabanca Review by: ecc (desk) Issue: 1665, 3233 Modified: releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java ============================================================================== --- releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java (original) +++ releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForEventsFiring.java Thu Jan 8 13:14:49 2009 @@ -1,5 +1,5 @@ /* - * Copyright 2008 Google Inc. + * Copyright 2009 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 @@ -29,6 +29,7 @@ import com.google.gwt.event.dom.client.ErrorHandler; import com.google.gwt.event.dom.client.FocusEvent; import com.google.gwt.event.dom.client.FocusHandler; +import com.google.gwt.event.dom.client.HasChangeHandlers; import com.google.gwt.event.dom.client.HasContextMenuHandlers; import com.google.gwt.event.dom.client.HasDoubleClickHandlers; import com.google.gwt.event.dom.client.HasMouseWheelHandlers; @@ -101,6 +102,13 @@ } } + private static class CustomTextBox extends TextBox implements + HasChangeHandlers { + public HandlerRegistration addChangeHandler(ChangeHandler handler) { + return addDomHandler(handler, ChangeEvent.getType()); + } + } + private static final int WINDOW_EVENT_SCROLL = -1; private static final int WINDOW_EVENT_RESIZE = -2; private static final int WINDOW_EVENT_CLOSING = -3; @@ -225,7 +233,7 @@ private void prepKeyboardEvents() { // Setup a text box to trigger the events - TextBox textBox = new TextBox(); + CustomTextBox textBox = new CustomTextBox(); // Setup the tests textBox.setText("Type a letter"); Modified: releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTextEvents.java ============================================================================== --- releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTextEvents.java (original) +++ releases/1.6/reference/code-museum/src/com/google/gwt/museum/client/defaultmuseum/VisualsForTextEvents.java Thu Jan 8 13:14:49 2009 @@ -1,5 +1,5 @@ /* - * Copyright 2008 Google Inc. + * Copyright 2009 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 @@ -49,7 +49,6 @@ })); b.addKeyboardListener(handler); handler.addKeyHandlersTo(b); - b.addChangeHandler(handler); b.addChangeListener(handler); b.addFocusHandler(handler); b.addBlurHandler(handler); Modified: releases/1.6/user/src/com/google/gwt/user/client/ui/CheckBox.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/user/client/ui/CheckBox.java (original) +++ releases/1.6/user/src/com/google/gwt/user/client/ui/CheckBox.java Thu Jan 8 13:14:49 2009 @@ -1,5 +1,5 @@ /* - * Copyright 2008 Google Inc. + * Copyright 2009 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 @@ -34,10 +34,12 @@ * </p> * * <h3>CSS Style Rules</h3> - * <ul class='css'> - * <li>.gwt-CheckBox { }</li> - * <li>.gwt-CheckBox-disabled { Applied when Checkbox is disabled }</li> - * </ul> + * <dl> + * <dt>.gwt-CheckBox</dt> + * <dd>the outer element</dd> + * <dt>.gwt-CheckBox-disabled</dt> + * <dd>applied when Checkbox is disabled</dd> + * </dl> * * <p> * <h3>Example</h3> @@ -46,6 +48,7 @@ */ public class CheckBox extends ButtonBase implements HasName, HasValue<Boolean> { private Element inputElem, labelElem; + private boolean valueChangeHandlerInitialized; /** * Creates a check box with no label. @@ -104,10 +107,11 @@ ValueChangeHandler<Boolean> handler) { // Is this the first value change handler? If so, time to listen to clicks // on the checkbox - if (!isEventHandled(ValueChangeEvent.getType())) { + if (!valueChangeHandlerInitialized) { + valueChangeHandlerInitialized = true; this.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { - // No need to compare old value and new value--click handler + // No need to compare old value and new value--click handler // only fires on real click, and value always toggles ValueChangeEvent.fire(CheckBox.this, isChecked()); } @@ -166,7 +170,7 @@ /** * Checks or unchecks this check box. Does not fire {...@link ValueChangeEvent}. - * (If you want the event to fire, use {...@link #setValue(boolean, boolean)}) + * (If you want the event to fire, use {...@link #setValue(Boolean, boolean)}) * * @param checked <code>true</code> to check the check box. */ @@ -220,7 +224,8 @@ } /** - * Checks or unchecks the text box. + * Checks or unchecks the text box. + * * @param value true to check, false to uncheck. Must not be null. * @thows IllegalArgumentException if value is null */ @@ -229,12 +234,12 @@ } /** - * Checks or unchecks the text box, firing {...@link ValueChangeEvent} - * if appropriate. - * + * Checks or unchecks the text box, firing {...@link ValueChangeEvent} if + * appropriate. + * * @param value true to check, false to uncheck. Must not be null. * @param fireEvents If true, and value has changed, fire a - * {...@link ValueChangeEvent} + * {...@link ValueChangeEvent} * @thows IllegalArgumentException if value is null */ public void setValue(Boolean value, boolean fireEvents) { Modified: releases/1.6/user/src/com/google/gwt/user/client/ui/PopupPanel.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/user/client/ui/PopupPanel.java (original) +++ releases/1.6/user/src/com/google/gwt/user/client/ui/PopupPanel.java Thu Jan 8 13:14:49 2009 @@ -439,14 +439,16 @@ } /** - * Hides the popup. This has no effect if it is not currently visible. + * Hides the popup and detaches it from the page. This has no effect if it is + * not currently showing. */ public void hide() { hide(false); } /** - * Hides the popup. This has no effect if it is not currently visible. + * Hides the popup and detaches it from the page. This has no effect if it is + * not currently showing. * * @param autoClosed the value that will be passed to * {...@link CloseHandler#onClose(CloseEvent)} when the popup is closed @@ -501,6 +503,31 @@ } /** + * Determines whether or not this popup is showing. + * + * @return <code>true</code> if the popup is showing + * @see #show() + * @see #hide() + */ + public boolean isShowing() { + return showing; + } + + /** + * Determines whether or not this popup is visible. Note that this just checks + * the <code>visibility</code> style attribute, which is set in the + * {...@link #setVisible(boolean)} method. If you want to know if the popup is + * attached to the page, use {...@link #isShowing()} instead. + * + * @return <code>true</code> if the object is visible + * @see #setVisible(boolean) + */ + @Override + public boolean isVisible() { + return !"hidden".equals(getElement().getStyle().getProperty("visibility")); + } + + /** * @deprecated use {...@link #onPreviewNativeEvent(NativePreviewEvent)} instead */ @Deprecated @@ -689,10 +716,14 @@ } /** - * Sets whether this object is visible. + * Sets whether this object is visible. This method just sets the + * <code>visibility</code> style attribute. You need to call {...@link #show()} + * to actually attached/detach the {...@link PopupPanel} to the page. * * @param visible <code>true</code> to show the object, <code>false</code> to * hide it + * @see #show() + * @see #hide() */ @Override public void setVisible(boolean visible) { @@ -739,7 +770,8 @@ } /** - * Shows the popup. It must have a child widget before this method is called. + * Shows the popup and attach it to the page. It must have a child widget + * before this method is called. */ public void show() { if (showing) { Modified: releases/1.6/user/src/com/google/gwt/user/client/ui/SuggestBox.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/user/client/ui/SuggestBox.java (original) +++ releases/1.6/user/src/com/google/gwt/user/client/ui/SuggestBox.java Thu Jan 8 13:14:49 2009 @@ -20,6 +20,7 @@ import static com.google.gwt.event.dom.client.KeyCodes.KEY_TAB; import static com.google.gwt.event.dom.client.KeyCodes.KEY_UP; +import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.HandlesAllKeyEvents; import com.google.gwt.event.dom.client.HasAllKeyHandlers; import com.google.gwt.event.dom.client.KeyDownEvent; @@ -46,6 +47,7 @@ import java.util.Collection; import java.util.List; + /** * A {...@link SuggestBox} is a text box or text area which displays a * pre-configured set of selections that match the user's input. @@ -91,31 +93,53 @@ * <img class='gallery' src='SuggestBox.png'/> * </p> * - * <h3>CSS Style Rules</h3> - * <ul class='css'> - * <li>.gwt-SuggestBox { the suggest - * box itself }</li> - * <li>.gwt-SuggestBoxPopup { the suggestion popup }</li> - * <li>.gwt-SuggestBoxPopup .item { an unselected suggestion }</li> - * <li>.gwt-SuggestBoxPopup .item-selected { a selected suggestion }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupTopLeft { the top left cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupTopLeftInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupTopCenter { the top center cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupTopCenterInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupTopRight { the top right cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupTopRightInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupMiddleLeft { the middle left cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupMiddleLeftInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupMiddleCenter { the middle center cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupMiddleCenterInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupMiddleRight { the middle right cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupMiddleRightInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupBottomLeft { the bottom left cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupBottomLeftInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupBottomCenter { the bottom center cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupBottomCenterInner { the inner element of the cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupBottomRight { the bottom right cell }</li> - * <li>.gwt-SuggestBoxPopup .suggestPopupBottomRightInner { the inner element of the cell }</li> </ul> + * <h3>CSS Style Rules</h3> + * <dl> + * <dt>.gwt-SuggestBox</dt> + * <dd>the suggest box itself</dd> + * <dt>.gwt-SuggestBoxPopup</dt> + * <dd>the suggestion popup</dd> + * <dt>.gwt-SuggestBoxPopup .item</dt> + * <dd>an unselected suggestion</dd> + * <dt>.gwt-SuggestBoxPopup .item-selected</dt> + * <dd>a selected suggestion</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupTopLeft</dt> + * <dd>the top left cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupTopLeftInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupTopCenter</dt> + * <dd>the top center cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupTopCenterInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupTopRight</dt> + * <dd>the top right cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupTopRightInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupMiddleLeft</dt> + * <dd>the middle left cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupMiddleLeftInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupMiddleCenter</dt> + * <dd>the middle center cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupMiddleCenterInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupMiddleRight</dt> + * <dd>the middle right cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupMiddleRightInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupBottomLeft</dt> + * <dd>the bottom left cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupBottomLeftInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupBottomCenter</dt> + * <dd>the bottom center cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupBottomCenterInner</dt> + * <dd>the inner element of the cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupBottomRight</dt> + * <dd>the bottom right cell</dd> + * <dt>.gwt-SuggestBoxPopup .suggestPopupBottomRightInner</dt> + * <dd>the inner element of the cell</dd> + * </dl> * * @see SuggestOracle * @see MultiWordSuggestOracle @@ -455,7 +479,7 @@ public void addChangeListener(final ChangeListener listener) { ListenerWrapper.Change legacy = new ListenerWrapper.Change(listener); legacy.setSource(this); - box.addChangeHandler(legacy); + box.addDomHandler(legacy, ChangeEvent.getType()); } /** @@ -533,9 +557,9 @@ } /** - * Returns whether or not the first suggestion will be automatically - * selected. This behavior is off by default. - * + * Returns whether or not the first suggestion will be automatically selected. + * This behavior is off by default. + * * @return true if the first suggestion will be automatically selected */ public boolean getSelectsFirstItem() { @@ -576,6 +600,13 @@ return suggestionPopup.isAnimationEnabled(); } + /** + * @return true if the list of suggestions is currently showing, false if not + */ + public boolean isSuggestionListShowing() { + return suggestionPopup.isShowing(); + } + @Deprecated public void removeChangeListener(ChangeListener listener) { ListenerWrapper.Change.remove(box, listener); @@ -636,7 +667,7 @@ /** * Turns on or off the behavior that automatically selects the first suggested * item. It defaults to off. - * + * * @param selectsFirstItem Whether or not to automatically select the first * suggested */ @@ -676,6 +707,10 @@ suggestionMenu.setMenuItemDebugIds(baseID); } + void showSuggestions(String query) { + oracle.requestSuggestions(new Request(query, limit), callBack); + } + private void addEventsToTextBox() { class TextBoxEvents extends HandlesAllKeyEvents implements ValueChangeHandler<String> { @@ -715,7 +750,7 @@ } public void onValueChange(ValueChangeEvent<String> event) { - fireEvent(event); + fireEvent(event); } private void refreshSuggestions() { @@ -805,9 +840,5 @@ } else { suggestionPopup.hide(); } - } - - private void showSuggestions(String query) { - oracle.requestSuggestions(new Request(query, limit), callBack); } } Modified: releases/1.6/user/src/com/google/gwt/user/client/ui/TextBoxBase.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/user/client/ui/TextBoxBase.java (original) +++ releases/1.6/user/src/com/google/gwt/user/client/ui/TextBoxBase.java Thu Jan 8 13:14:49 2009 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Google Inc. + * Copyright 2009 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 @@ -19,7 +19,6 @@ import com.google.gwt.dom.client.Element; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; -import com.google.gwt.event.dom.client.HasChangeHandlers; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.event.shared.HandlerRegistration; @@ -32,7 +31,7 @@ */ @SuppressWarnings("deprecation") public class TextBoxBase extends FocusWidget implements SourcesChangeEvents, - HasChangeHandlers, HasText, HasName, HasValue<String> { + HasText, HasName, HasValue<String> { /** * Text alignment constant, used in @@ -77,6 +76,7 @@ private static TextBoxImpl impl = GWT.create(TextBoxImpl.class); private Event currentEvent; + private boolean valueChangeHandlerInitialized; /** * Creates a text box that wraps the given browser element handle. This is @@ -88,24 +88,21 @@ super(elem); } - public HandlerRegistration addChangeHandler(ChangeHandler handler) { - return addDomHandler(handler, ChangeEvent.getType()); - } - @Deprecated public void addChangeListener(ChangeListener listener) { - addChangeHandler(new ListenerWrapper.Change(listener)); + addDomHandler(new ListenerWrapper.Change(listener), ChangeEvent.getType()); } public HandlerRegistration addValueChangeHandler( ValueChangeHandler<String> handler) { // Initialization code - if (!isEventHandled(ValueChangeEvent.getType())) { - addChangeHandler(new ChangeHandler() { + if (!valueChangeHandlerInitialized) { + valueChangeHandlerInitialized = true; + addDomHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { - setValue(getText()); + ValueChangeEvent.fire(TextBoxBase.this, getText()); } - }); + }, ChangeEvent.getType()); } return addHandler(handler, ValueChangeEvent.getType()); } Modified: releases/1.6/user/src/com/google/gwt/user/datepicker/client/DateBox.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/user/datepicker/client/DateBox.java (original) +++ releases/1.6/user/src/com/google/gwt/user/datepicker/client/DateBox.java Thu Jan 8 13:14:49 2009 @@ -1,5 +1,5 @@ /* - * Copyright 2008 Google Inc. + * Copyright 2009 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 @@ -70,9 +70,9 @@ * If that fails, we then try to parse again using the default browser date * parsing. * </p> - * If that fails, the <code>dateBoxFormatError</code> css style is - * applied to the {...@link DateBox}. The style will be removed when either a - * successful {...@link #parse(DateBox,String, boolean)} is called or + * If that fails, the <code>dateBoxFormatError</code> css style is applied to + * the {...@link DateBox}. The style will be removed when either a successful + * {...@link #parse(DateBox,String, boolean)} is called or * {...@link #format(DateBox,Date)} is called. * <p> * Use a different {...@link DateBox.Format} instance to change that behavior. @@ -183,7 +183,7 @@ CloseHandler<PopupPanel> { public void onBlur(BlurEvent event) { - if (isDatePickerVisible() == false) { + if (isDatePickerShowing() == false) { updateDateFromTextBox(); } } @@ -201,7 +201,7 @@ } public void onFocus(FocusEvent event) { - if (allowDPShow && isDatePickerVisible() == false) { + if (allowDPShow && isDatePickerShowing() == false) { showDatePicker(); } } @@ -354,10 +354,10 @@ } /** - * @return true if date picker is currently visible, false if not + * @return true if date picker is currently showing, false if not */ - public boolean isDatePickerVisible() { - return popup.isVisible(); + public boolean isDatePickerShowing() { + return popup.isShowing(); } /** Modified: releases/1.6/user/test/com/google/gwt/user/UISuite.java ============================================================================== --- releases/1.6/user/test/com/google/gwt/user/UISuite.java (original) +++ releases/1.6/user/test/com/google/gwt/user/UISuite.java Thu Jan 8 13:14:49 2009 @@ -66,6 +66,7 @@ import com.google.gwt.user.client.ui.SimpleRadioButtonTest; import com.google.gwt.user.client.ui.SplitPanelTest; import com.google.gwt.user.client.ui.StackPanelTest; +import com.google.gwt.user.client.ui.SuggestBoxTest; import com.google.gwt.user.client.ui.TabBarTest; import com.google.gwt.user.client.ui.TabPanelTest; import com.google.gwt.user.client.ui.TextAreaTest; @@ -142,6 +143,7 @@ suite.addTestSuite(SimpleRadioButtonTest.class); suite.addTestSuite(SplitPanelTest.class); suite.addTestSuite(StackPanelTest.class); + suite.addTestSuite(SuggestBoxTest.class); suite.addTestSuite(TabBarTest.class); suite.addTestSuite(TabPanelTest.class); suite.addTestSuite(TextAreaTest.class); Modified: releases/1.6/user/test/com/google/gwt/user/client/ui/DateBoxTest.java ============================================================================== --- releases/1.6/user/test/com/google/gwt/user/client/ui/DateBoxTest.java (original) +++ releases/1.6/user/test/com/google/gwt/user/client/ui/DateBoxTest.java Thu Jan 8 13:14:49 2009 @@ -22,13 +22,23 @@ * Tests DateBox. */ public class DateBoxTest extends GWTTestCase { + @Override public String getModuleName() { return "com.google.gwt.user.User"; } - + + public void testAccessors() { + DateBox db = new DateBox(); + assertFalse(db.isDatePickerShowing()); + db.showDatePicker(); + assertTrue(db.isDatePickerShowing()); + db.hideDatePicker(); + assertFalse(db.isDatePickerShowing()); + } + public void testValueChangeEvent() { DateBox db = new DateBox(); RootPanel.get().add(db); - new DateValueChangeTester(db).run(); + new DateValueChangeTester(db).run(); } } Modified: releases/1.6/user/test/com/google/gwt/user/client/ui/PopupTest.java ============================================================================== --- releases/1.6/user/test/com/google/gwt/user/client/ui/PopupTest.java (original) +++ releases/1.6/user/test/com/google/gwt/user/client/ui/PopupTest.java Thu Jan 8 13:14:49 2009 @@ -23,7 +23,7 @@ import com.google.gwt.user.client.Window; /** - * TODO: document me. + * Tests for {...@link PopupPanel}. */ public class PopupTest extends GWTTestCase { @@ -82,6 +82,20 @@ assertTrue(popup.isPreviewingAllNativeEvents()); popup.setPreviewingAllNativeEvents(false); assertFalse(popup.isPreviewingAllNativeEvents()); + + // setVisible + assertTrue(popup.isVisible()); + popup.setVisible(false); + assertFalse(popup.isVisible()); + popup.setVisible(true); + assertTrue(popup.isVisible()); + + // isShowing + assertFalse(popup.isShowing()); + popup.show(); + assertTrue(popup.isShowing()); + popup.hide(); + assertFalse(popup.isShowing()); } public void testAutoHidePartner() { Added: releases/1.6/user/test/com/google/gwt/user/client/ui/SuggestBoxTest.java ============================================================================== --- (empty file) +++ releases/1.6/user/test/com/google/gwt/user/client/ui/SuggestBoxTest.java Thu Jan 8 13:14:49 2009 @@ -0,0 +1,62 @@ +/* + * Copyright 2009 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; + +import com.google.gwt.junit.client.GWTTestCase; + +/** + * Tests for {...@link SuggestBoxTest}. + */ +public class SuggestBoxTest extends GWTTestCase { + + @Override + public String getModuleName() { + return "com.google.gwt.user.User"; + } + + /** + * Test the basic accessors. + */ + public void testAccessors() { + SuggestBox box = createSuggestBox(); + + // setLimit + box.setLimit(5); + assertEquals(5, box.getLimit()); + + // setSelectsFirstItem + box.setSelectsFirstItem(true); + assertTrue(box.getSelectsFirstItem()); + box.setSelectsFirstItem(false); + assertFalse(box.getSelectsFirstItem()); + + // isSuggestionListShowing + assertFalse(box.isSuggestionListShowing()); + box.showSuggestions("test"); + assertTrue(box.isSuggestionListShowing()); + } + + protected SuggestBox createSuggestBox() { + MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(); + oracle.add("test"); + oracle.add("test1"); + oracle.add("test2"); + oracle.add("test3"); + oracle.add("test4"); + oracle.add("john"); + return new SuggestBox(oracle); + } +} --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---