| /* |
| * Copyright 2008 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.event.logical.shared.ValueChangeEvent; |
| import com.google.gwt.event.logical.shared.ValueChangeHandler; |
| import com.google.gwt.event.shared.HandlerRegistration; |
| import com.google.gwt.museum.client.common.AbstractIssue; |
| import com.google.gwt.museum.client.common.EventReporter; |
| import com.google.gwt.user.client.ui.CheckBox; |
| import com.google.gwt.user.client.ui.HorizontalPanel; |
| import com.google.gwt.user.client.ui.MultiWordSuggestOracle; |
| import com.google.gwt.user.client.ui.Panel; |
| 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; |
| |
| /** |
| * A simple test for suggest box events. |
| */ |
| @SuppressWarnings("deprecation") |
| public class VisualsForSuggestBoxEvents extends AbstractIssue { |
| |
| HorizontalPanel report = new HorizontalPanel(); |
| |
| @Override |
| public Widget createIssue() { |
| VerticalPanel p = new VerticalPanel(); |
| |
| p.add(createSuggestBox("suggest 1", p)); |
| p.add(createSuggestBox("suggest 2", p)); |
| report.setBorderWidth(3); |
| |
| report.setCellWidth(report.getWidget(0), "300px"); |
| report.setCellWidth(report.getWidget(1), "300px"); |
| |
| p.add(report); |
| return p; |
| } |
| |
| @Override |
| public String getInstructions() { |
| return "Select suggestions from suggest box, check report for events being fired"; |
| } |
| |
| @Override |
| public String getSummary() { |
| return "suggest box event visual test"; |
| } |
| |
| @Override |
| public boolean hasCSS() { |
| return false; |
| } |
| |
| SuggestBox createSuggestBox(final String suggestBoxName, Panel p) { |
| |
| List<String> femaleNames = Arrays.asList(new String[] { |
| "Jamie", "Jill", "Jackie", "Susan", "Helen", "Emily", "Karen", |
| "Abigail", "Kaitlyn", "Laura", "Joanna", "Tasha"}); |
| MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(); |
| oracle.addAll(femaleNames); |
| |
| final SuggestBox b = new SuggestBox(oracle); |
| b.setTitle(suggestBoxName); |
| p.add(b); |
| final CheckBox selectsFirst = new CheckBox("Selects first suggestion"); |
| selectsFirst.addValueChangeHandler(new ValueChangeHandler<Boolean>() { |
| public void onValueChange(ValueChangeEvent<Boolean> event) { |
| b.setAutoSelectEnabled(event.getValue()); |
| } |
| }); |
| selectsFirst.setChecked(b.isAutoSelectEnabled()); |
| p.add(selectsFirst); |
| final EventReporter<String, SuggestBox> handler = new EventReporter<String, SuggestBox>( |
| report); |
| |
| handler.new CheckBoxEvent("KeyDown", p) { |
| |
| @Override |
| public HandlerRegistration addHandler() { |
| return b.addKeyDownHandler(handler); |
| } |
| |
| }; |
| |
| handler.new CheckBoxListener("ChangeListener", p) { |
| |
| @Override |
| public void addListener() { |
| b.addChangeListener(handler); |
| } |
| |
| @Override |
| public void removeListener() { |
| b.removeChangeListener(handler); |
| } |
| }; |
| handler.new CheckBoxListener("Suggestion listener", p) { |
| |
| @Override |
| public void addListener() { |
| b.addEventHandler(handler); |
| } |
| |
| @Override |
| public void removeListener() { |
| b.removeEventHandler(handler); |
| } |
| }; |
| |
| b.addKeyUpHandler(handler); |
| b.addKeyPressHandler(handler); |
| b.addFocusListener(handler); |
| b.addSelectionHandler(handler); |
| b.addValueChangeHandler(handler); |
| return b; |
| } |
| } |