/**
* 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.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
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.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.core.client.resources.ThemeStyles;
import com.sencha.gxt.examples.resources.client.Resources;
import com.sencha.gxt.explorer.client.model.Example.Detail;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.container.NorthSouthContainer;
import com.sencha.gxt.widget.core.client.info.Info;
import com.sencha.gxt.widget.core.client.menu.CheckMenuItem;
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.MenuBar;
import com.sencha.gxt.widget.core.client.menu.MenuBarItem;
import com.sencha.gxt.widget.core.client.menu.MenuItem;
import com.sencha.gxt.widget.core.client.menu.SeparatorMenuItem;
@Detail(name = "MenuBar", icon = "menubar", category = "ToolBar & Menu")
public class MenuBarExample implements IsWidget {
@Override
public Widget asWidget() {
SelectionHandler<Item> handler = new SelectionHandler<Item>() {
@Override
public void onSelection(SelectionEvent<Item> event) {
MenuItem item = (MenuItem)event.getSelectedItem();
Info.display("Action", "You selected the " + item.getText());
}
};
Menu menu = new Menu();
menu.addSelectionHandler(handler);
MenuItem item1 = new MenuItem("New");
menu.add(item1);
MenuItem item2 = new MenuItem("Open File");
menu.add(item2);
Menu sub = new Menu();
sub.addSelectionHandler(handler);
sub.add(new MenuItem("readme.txt"));
sub.add(new MenuItem("helloworld.txt"));
item2.setSubMenu(sub);
MenuBar bar = new MenuBar();
bar.addStyleName(ThemeStyles.getStyle().borderBottom());
bar.add(new MenuBarItem("File", menu));
Menu sub2 = new Menu();
sub2.addSelectionHandler(handler);
sub2.add(new MenuItem("Cut"));
sub2.add(new MenuItem("Copy"));
MenuBarItem edit = new MenuBarItem("Edit", sub2);
bar.add(edit);
sub = new Menu();
sub.addSelectionHandler(handler);
sub.add(new MenuItem("Search"));
sub.add(new MenuItem("File"));
sub.add(new MenuItem("Java"));
MenuBarItem item3 = new MenuBarItem("Search", sub);
bar.add(item3);
menu = new Menu();
menu.addSelectionHandler(handler);
CheckMenuItem menuItem = new CheckMenuItem("I Like Cats");
menuItem.setChecked(true);
menu.add(menuItem);
menuItem = new CheckMenuItem("I Like Dogs");
menu.add(menuItem);
menu.add(new SeparatorMenuItem());
MenuItem radios = new MenuItem("Radio Options");
menu.add(radios);
Menu radioMenu = new Menu();
radioMenu.addSelectionHandler(handler);
CheckMenuItem r = new CheckMenuItem("Blue Theme");
r.setGroup("radios");
r.setChecked(true);
radioMenu.add(r);
r = new CheckMenuItem("Gray Theme");
r.setGroup("radios");
radioMenu.add(r);
radios.setSubMenu(radioMenu);
MenuItem date = new MenuItem("Choose a Date");
date.setIcon(Resources.IMAGES.calendar());
menu.add(date);
final DateMenu dateMenu = new DateMenu();
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);
}
});
date.setSubMenu(dateMenu);
MenuBarItem item4 = new MenuBarItem("Foo", menu);
bar.add(item4);
ContentPanel panel = new ContentPanel();
panel.setHeadingText("MenuBar Example");
panel.setPixelSize(400, 300);
panel.getElement().setMargins(10);
NorthSouthContainer comp = new NorthSouthContainer();
comp.setNorthWidget(bar);
panel.add(comp);
return panel;
}
}