com.google.appinventor.client.explorer.youngandroid.GalleryToolbar.java Source code

Java tutorial

Introduction

Here is the source code for com.google.appinventor.client.explorer.youngandroid.GalleryToolbar.java

Source

// -*- 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;
    }
}