// -*- mode: java; c-basic-offset: 2; -*- // Copyright 2009-2011 Google, All Rights reserved // Copyright 2011-2012 MIT, All rights reserved // Released under the Apache License, Version 2.0 // http://www.apache.org/licenses/LICENSE-2.0 package com.google.appinventor.client.explorer.youngandroid; import java.util.ArrayList; import java.util.List; import com.google.appinventor.client.GalleryClient; import com.google.appinventor.client.Ode; import com.google.appinventor.client.boxes.GalleryListBox; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.dom.client.KeyDownHandler; 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.HorizontalPanel; import com.google.gwt.user.client.ui.TextBox; /** * The Gallery Toolbar * @author Bin Lu blu2@dons.usfca.edu * */ public class GalleryToolbar extends Composite { private static final int SEARCHTAB = 4; public static List<GalleryToolbar> allSearchToolbars = new ArrayList<GalleryToolbar>(); //store the reference of all creating toolbar final TextBox searchText; final Button searchButton; /** * Initializes and assembles all commands into buttons in the toolbar. */ public GalleryToolbar() { allSearchToolbars.add(this); HorizontalPanel toolbar = new HorizontalPanel(); toolbar.setWidth("100%"); toolbar.setStylePrimaryName("ya-GalleryToolbar"); FlowPanel searchPanel = new FlowPanel(); searchText = new TextBox(); searchText.addStyleName("gallery-search-textarea"); searchButton = new Button("Search for apps"); searchButton.addStyleName("search-compontent"); searchPanel.add(searchText); searchPanel.add(searchButton); searchPanel.addStyleName("gallery"); toolbar.add(searchPanel); searchButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { GalleryClient.getInstance().FindApps(searchText.getText(), 0, GalleryList.NUMAPPSTOSHOW, 0, true); searchText.setFocus(true); Ode.getInstance().switchToGalleryView(); GalleryListBox.getGalleryListBox().getGalleryList().setSelectTabIndex(SEARCHTAB); for(GalleryToolbar toolbar : allSearchToolbars){ toolbar.getSearchText().setText(searchText.getText()); } //TODO in gallerylist.java --> findapps: create a way to grab keyword from this toolbar //this is just a temp solution. GalleryListBox.getGalleryListBox().getGalleryList().getSearchText().setText(searchText.getText()); } }); searchText.addKeyDownHandler(new KeyDownHandler() { @Override public void onKeyDown(KeyDownEvent e) { if(e.getNativeKeyCode() == KeyCodes.KEY_ENTER){ GalleryClient.getInstance().FindApps(searchText.getText(), 0, GalleryList.NUMAPPSTOSHOW, 0, true); searchText.setFocus(true); Ode.getInstance().switchToGalleryView(); GalleryListBox.getGalleryListBox().getGalleryList().setSelectTabIndex(SEARCHTAB); for(GalleryToolbar toolbar : allSearchToolbars){ toolbar.getSearchText().setText(searchText.getText()); } //TODO in gallerylist.java --> findapps: create a way to grab keyword from this toolbar //this is just a temp solution. GalleryListBox.getGalleryListBox().getGalleryList().getSearchText().setText(searchText.getText()); } } }); initWidget(toolbar); } /** * get searchText label * @return Label searchText */ public TextBox getSearchText(){ return searchText; } /** * get getSearchButton button * @return Button searchButton */ public Button getSearchButton(){ return searchButton; } }