package com.kafecho.stweetmap.client; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.dom.client.KeyDownHandler; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.dom.client.KeyPressHandler; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.TextBox; public class SearchInputPanel extends Composite { /** * Listens for keyboard events on the query field to enable or disable the search button. * @author Guillaume Belrose */ public class KeyboardEventHandler implements KeyUpHandler,KeyDownHandler,KeyPressHandler{ private void checkQuery(){ boolean enabled = ! query.getText().isEmpty(); search.setEnabled(enabled); } public void onKeyUp(KeyUpEvent event){ checkQuery();} public void onKeyDown(KeyDownEvent event) { checkQuery();} public void onKeyPress(KeyPressEvent event){checkQuery();} } private TextBox query = null; private Button search = null; private Image busy = null; private Label heading = null; public Image getBusy() { return busy; } public TextBox getQuery() { return query; } public Button getSearch() { return search; } public SearchInputPanel(){ FlowPanel inputPanel = new FlowPanel(); inputPanel.addStyleName("inputPanel"); query = new TextBox(); query.addStyleName("query"); search = new Button("Search"); search.addStyleName("search"); search.setTitle("search Twitter"); search.setEnabled(false); busy = new Image("ajax-loader.gif"); busy.addStyleName("busy"); busy.setVisible(false); heading = new Label("Where do they tweet about"); heading.addStyleName("heading"); inputPanel.add(heading); inputPanel.add(query); inputPanel.add(search); inputPanel.add(busy); KeyboardEventHandler keh = new KeyboardEventHandler(); query.addKeyDownHandler(keh); query.addKeyUpHandler(keh); query.addKeyPressHandler(keh); initWidget(inputPanel); } }