/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.explorer.client.toolbar;
import java.util.Date;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiFactory;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
import com.sencha.gxt.examples.resources.client.TestData;
import com.sencha.gxt.examples.resources.client.model.Stock;
import com.sencha.gxt.explorer.client.model.Example.Detail;
import com.sencha.gxt.widget.core.client.form.ComboBox;
import com.sencha.gxt.widget.core.client.info.Info;
import com.sencha.gxt.widget.core.client.menu.ColorMenu;
import com.sencha.gxt.widget.core.client.menu.DateMenu;
import com.sencha.gxt.widget.core.client.menu.Item;
import com.sencha.gxt.widget.core.client.menu.Menu;
import com.sencha.gxt.widget.core.client.menu.MenuItem;
@Detail(name = "Basic ToolBar (UiBinder)", icon = "basictoolbar", category = "ToolBar & Menu", files = "ToolBarUiBinderExample.ui.xml")
public class ToolBarUiBinderExample implements IsWidget, EntryPoint {
interface StockProperties extends PropertyAccess<Stock> {
ModelKeyProvider<Stock> id();
LabelProvider<Stock> name();
}
interface MyUiBinder extends UiBinder<Widget, ToolBarUiBinderExample> {
}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@UiField
Menu scrollMenu;
@UiField
DateMenu dateMenu;
@UiField
ColorMenu colorMenu;
StockProperties props = GWT.create(StockProperties.class);
public Widget asWidget() {
Widget component = uiBinder.createAndBindUi(this);
for (int i = 0; i < 40; i++) {
scrollMenu.add(new MenuItem("Item " + i));
}
dateMenu.getDatePicker().addValueChangeHandler(new ValueChangeHandler<Date>() {
@Override
public void onValueChange(ValueChangeEvent<Date> event) {
Date d = event.getValue();
DateTimeFormat f = DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT);
Info.display("Value Changed", "You selected " + f.format(d));
dateMenu.hide(true);
}
});
colorMenu.getPalette().addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
String color = event.getValue();
Info.display("Color Changed", "You selected " + color);
colorMenu.hide(true);
}
});
return component;
}
public void onModuleLoad() {
RootPanel.get().add(asWidget());
}
@UiFactory
public ComboBox<Stock> createComboBox() {
ListStore<Stock> store = new ListStore<Stock>(props.id());
store.addAll(TestData.getStocks());
ComboBox<Stock> combo = new ComboBox<Stock>(store, props.name());
combo.setName("name");
combo.setForceSelection(true);
combo.setTriggerAction(TriggerAction.ALL);
return combo;
}
@UiHandler({"menu1", "splitButtonMenu"})
public void onMenuSelection(SelectionEvent<Item> event) {
MenuItem item = (MenuItem) event.getSelectedItem();
Info.display("Action", "You selected the " + item.getText());
}
}