package com.smartgwt.sample.showcase.client.menu;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.menu.IMenuButton;
import com.smartgwt.client.widgets.menu.Menu;
import com.smartgwt.client.widgets.menu.MenuButton;
import com.smartgwt.client.widgets.menu.MenuItem;
import com.smartgwt.client.widgets.menu.events.ItemClickEvent;
import com.smartgwt.client.widgets.menu.events.ItemClickHandler;
import com.smartgwt.sample.showcase.client.PanelFactory;
import com.smartgwt.sample.showcase.client.ShowcasePanel;
import com.smartgwt.sample.showcase.client.data.SupplyCategoryXmlDS;
public class MenuTreeBindingSample extends ShowcasePanel {
private static final String DESCRIPTION = "Click on \"Department\" or \"Category\" below to show hierarchical menus." +
" The \"Category\" menu loads options dynamically from the SupplyCategory DataSource.";
public static class Factory implements PanelFactory {
private String id;
public Canvas create() {
MenuTreeBindingSample panel = new MenuTreeBindingSample();
id = panel.getID();
return panel;
}
public String getID() {
return id;
}
public String getDescription() {
return DESCRIPTION;
}
}
public Canvas getViewPanel() {
Canvas main = new Canvas();
Menu mDepartment = new Menu();
mDepartment.setCanSelectParentItems(true);
mDepartment.setData(getLocalItemsAsArray());
mDepartment.setWidth(130);
mDepartment.addItemClickHandler(new ItemClickHandler() {
public void onItemClick(ItemClickEvent event) {
SC.say("You picked the \"" + event.getItem().getTitle()
+ "\" department.");
}
});
IMenuButton bDepartment = new IMenuButton("Go to department", mDepartment);
bDepartment.setWidth(130);
main.addChild(bDepartment);
Menu mCategory = new Menu();
mCategory.setCanSelectParentItems(true);
mCategory.setDataSource(SupplyCategoryXmlDS.getInstance());
mCategory.setWidth(130);
mCategory.addItemClickHandler(new ItemClickHandler() {
public void onItemClick(ItemClickEvent event) {
MenuItem item = event.getItem();
SC.say("You picked the \""
+ item.getAttributeAsString("categoryName")
+ "\" category.");
}
});
IMenuButton bCategory = new IMenuButton("Go to category", mCategory);
bCategory.setTop(30);
bCategory.setWidth(140);
main.addChild(bCategory);
return main;
}
private MenuItem[] getLocalItemsAsArray() {
MenuItem[] m = new MenuItem[4];
m[0] = new MenuItem("Marketing");
Menu menuMarketing = new Menu();
menuMarketing.setData(new MenuItem("Advertising"), new MenuItem("Community Relations"));
m[0].setSubmenu(menuMarketing);
m[1] = new MenuItem("Sales");
Menu menuSales = new Menu();
menuSales.setData(new MenuItem("Direct Sales"),new MenuItem("Channel Sales"));
m[1].setSubmenu(menuSales);
m[2] = new MenuItem("Manufacturing");
Menu menuManufacturing = new Menu();
menuManufacturing.setData(new MenuItem("Design"), new MenuItem("Development"), new MenuItem("QA"));
m[2].setSubmenu(menuManufacturing);
m[3] = new MenuItem("Services");
Menu menuServices = new Menu();
menuServices.setData(new MenuItem("Support"), new MenuItem("Consulting"));
m[3].setSubmenu(menuServices);
return m;
}
public String getIntro() {
return DESCRIPTION;
}
}