blob: a495c3a84ce8e16351c55afa8ec3dcfdf270f362 [file] [log] [blame]
/*
* 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.museum.client.defaultmuseum;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.museum.client.common.AbstractIssue;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MultiWordSuggestOracle;
import com.google.gwt.user.client.ui.SuggestBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import java.util.Arrays;
import java.util.List;
/**
* Visual test for suggest box.
*/
public class VisualsForSuggestBox extends AbstractIssue {
MultiWordSuggestOracle girlsNames = new MultiWordSuggestOracle();
MultiWordSuggestOracle girlsNamesWithDefault = new MultiWordSuggestOracle();
Element textBoxToWrap;
VisualsForSuggestBox() {
List<String> femaleNames = Arrays.asList("Jamie", "Jill", "Jackie",
"Susan", "Helen", "Emily", "Karen", "Emily", "Isabella", "Emma", "Ava",
"Madison", "Sophia", "Olivia", "Abigail", "Hannah", "Elizabeth",
"Addison", "Samantha", "Ashley", "Alyssa", "Mia", "Chloe", "Natalie",
"Sarah", "Alexis", "Grace", "Ella", "Brianna", "Hailey", "Taylor",
"Anna", "Kayla", "Lily", "Lauren", "Victoria", "Savannah", "Nevaeh",
"Jasmine", "Lillian", "Julia", "Sofia", "Kaylee", "Sydney",
"Gabriella", "Katherine", "Alexa", "Destiny", "Jessica", "Morgan",
"Kaitlyn", "Brooke", "Allison", "Makayla", "Avery", "Alexandra",
"Jocelyn");
girlsNames.addAll(femaleNames);
girlsNamesWithDefault.addAll(femaleNames);
girlsNamesWithDefault.setDefaultSuggestionsFromText(femaleNames);
}
/**
* This is the entry point method.
*/
@Override
public Widget createIssue() {
VerticalPanel panel = new VerticalPanel();
HTML wrapperText = new HTML(
"Make sure this wrapped suggest box works as normal.");
panel.add(wrapperText);
textBoxToWrap = Document.get().createTextInputElement();
wrapperText.getElement().appendChild(textBoxToWrap);
panel.add(new HTML(
"Select the show button, nothing should open <br/> Type 'e' and select the button again, now a suggestion list should open and close."));
panel.add(manuallyShowAndHide());
panel.add(new Label(
"Click on suggest box, it should open automatically. Check that First item is not selected"));
panel.add(suggestBoxWithDefault());
return panel;
}
@Override
public String getInstructions() {
return "Follow the directions above each suggest box";
}
@Override
public String getSummary() {
return "suggest box visuals";
}
@Override
public boolean hasCSS() {
return false;
}
private Widget manuallyShowAndHide() {
FlexTable t = new FlexTable();
t.getFlexCellFormatter().setColSpan(0, 0, 20);
final SuggestBox box = simpleSuggestBox();
box.setAnimationEnabled(true);
t.setWidget(0, 0, box);
Button showSuggestions = new Button(
"show suggestions, then hide after 2 seconds", new ClickHandler() {
public void onClick(ClickEvent event) {
box.showSuggestionList();
new Timer() {
@Override
public void run() {
box.hideSuggestionList();
}
}.schedule(2000);
}
});
t.setWidget(1, 0, showSuggestions);
return t;
}
private SuggestBox simpleSuggestBox() {
SuggestBox b = new SuggestBox(girlsNames);
return b;
}
private SuggestBox suggestBoxWithDefault() {
final SuggestBox b = new SuggestBox(girlsNamesWithDefault);
b.setAutoSelectEnabled(false);
b.getTextBox().addMouseDownHandler(new MouseDownHandler() {
public void onMouseDown(MouseDownEvent event) {
b.showSuggestionList();
}
});
return b;
}
}