Package com.gwtapps.projects.nextCoffee.client

Source Code of com.gwtapps.projects.nextCoffee.client.MainView$CoffeeImageBundle

package com.gwtapps.projects.nextCoffee.client;

import java.util.ArrayList;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.ImageBundle;
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.PushButton;
import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;

public class MainView extends Composite {

  public static interface CoffeeImageBundle extends ImageBundle {

    @Resource("basket_put.png")
    public AbstractImagePrototype addIcon();

    @Resource("basket_remove.png")
    public AbstractImagePrototype removeIcon();

    @Resource("cup.png")
    public AbstractImagePrototype cupIcon();

  }

  public static CoffeeImageBundle coffeeImages = (CoffeeImageBundle) GWT
      .create(CoffeeImageBundle.class);
  final Image cupIcon = new Image();
  private FlexTable clientsFlexTable = new FlexTable();
  private VerticalPanel orderSummaryColumn = new VerticalPanel();
  private VerticalPanel column1 = new VerticalPanel();
  private VerticalPanel column2 = new VerticalPanel();
  private ArrayList<String> clients = new ArrayList<String>();

  public MainView() {
    // Initialize main pane
    VerticalPanel mainPanel = new VerticalPanel();
    initWidget(mainPanel);
    setWidth("100%");
    setHeight("100%");
    mainPanel.add(createPage());

    clientsFlexTable.setText(0, 0, "Name");
    clientsFlexTable.setText(0, 1, "Selection");
    clientsFlexTable.setText(0, 2, "Coffee Cups");
    clientsFlexTable.setText(0, 3, "Clear");

    // Add styles to elements in the stock list table.
    clientsFlexTable.getRowFormatter().addStyleName(0,
        "clientsFlexTableHeader");
    clientsFlexTable.addStyleName("clientsFlexTableList");
    clientsFlexTable.getCellFormatter().addStyleName(0, 2, "clientsFlexTableImageColumn");

    addRow("Kiril");
    addRow("Murf");
  }

  public void addClientList(NextCoffeeServiceClientImpl view) {
    orderSummaryColumn.add(view.getView());
  }
 
  public HorizontalPanel createPage() {
    HorizontalPanel page = new HorizontalPanel();
    page.setWidth("100%");
    page.setHeight("100%");
    page.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP);

    initColumn(page, orderSummaryColumn, "20%");

    initColumn(page, column1);
    column1.add(clientsFlexTable);

    initColumn(page, column2);
    return page;
  }

  public void initColumn(HorizontalPanel page, VerticalPanel column,
      String width) {
    page.add(column);
    page.setCellWidth(column, width);
    page.setCellHeight(column, "100%");
    // column.setHeight("100%");

  }

  public void initColumn(HorizontalPanel page, VerticalPanel column) {
    page.add(column);
    page.setCellWidth(column, "40%");
    page.setCellHeight(column, "100%");
    // column.setHeight("100%");

  }

  public void addRow(String name) {
    if (clients.contains(name))
      return;

    // HorizontalPanel customerRow = new HorizontalPanel();
    Label nameLabel = new Label(name);
    final FlowPanel cupArray = new FlowPanel();

    nameLabel.setWidth("100px");

    // create a listener for removing coffee icon to the column
    ClickHandler removeButtonListener = new ClickHandler() {
      public void onClick(ClickEvent event) {
        int lastCupID = cupArray.getWidgetCount() - 1;
        if (lastCupID > -1)
          cupArray.clear();
      }
    };

    PushButton removeButton = new PushButton(coffeeImages.removeIcon()
        .createImage(), removeButtonListener);

    // Define the oracle that finds drink suggestions
    final MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
    oracle.add("Latte");
    oracle.add("Moccachino");
    oracle.add("Black Coffee + Sugar 026");
    oracle.add("Black Coffee - Sugar");

    final SuggestBox box = new SuggestBox(oracle);
    // create a listener for adding coffee icon to the column
    SelectionHandler<Suggestion> addListener = new SelectionHandler<Suggestion>() {
      public void onSelection(SelectionEvent<Suggestion> event) {
        if (cupArray.getWidgetCount() == 4) {
          Window.alert("Easy Tiger!");
          box.setText("");
          return;
        }
        cupArray.add(coffeeImages.cupIcon().createImage());
        cupArray.getElement().setTitle(box.getText());
        box.setText("");
      }
    };
    box.addSelectionHandler(addListener);

    int row = clientsFlexTable.getRowCount();
    clientsFlexTable.setText(row, 0, name);
    clientsFlexTable.setWidget(row, 1, box);
    clientsFlexTable.setWidget(row, 2, cupArray);

    clientsFlexTable.setWidget(row, 3, removeButton);
  }
}
TOP

Related Classes of com.gwtapps.projects.nextCoffee.client.MainView$CoffeeImageBundle

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.