Mega Code Archive

 
Categories / Java / GWT
 

Menu Tree Binding Sample (Smart GWT)

/*  * SmartGWT (GWT for SmartClient)  * Copyright 2008 and beyond, Isomorphic Software, Inc.  *  * SmartGWT is free software; you can redistribute it and/or modify it  * under the terms of the GNU Lesser General Public License version 3  * as published by the Free Software Foundation.  SmartGWT is also  * available under typical commercial license terms - see  * http://smartclient.com/license  * This software is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  * Lesser General Public License for more details.  */ package com.smartgwt.sample.showcase.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Canvas; 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; public class Showcase implements EntryPoint {   public void onModuleLoad() {     RootPanel.get().add(getViewPanel());   }   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.");       }     });     MenuButton bDepartment = new MenuButton("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.");       }     });     MenuButton bCategory = new MenuButton("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;   }    } class SupplyCategoryXmlDS extends DataSource {   private static SupplyCategoryXmlDS instance = null;   public static SupplyCategoryXmlDS getInstance() {       if (instance == null) {           instance = new SupplyCategoryXmlDS("supplyCategoryDS");       }       return instance;   }   public SupplyCategoryXmlDS(String id) {       setID(id);       setRecordXPath("/List/supplyCategory");       DataSourceTextField itemNameField = new DataSourceTextField("categoryName", "Item", 128, true);       itemNameField.setPrimaryKey(true);       DataSourceTextField parentField = new DataSourceTextField("parentID", null);       parentField.setHidden(true);       parentField.setRequired(true);       parentField.setRootValue("root");       parentField.setForeignKey("supplyCategoryDS.categoryName");       setFields(itemNameField, parentField);       setDataURL("ds/test_data/supplyCategory.data.xml");              setClientOnly(true);   } }                  SmartGWT.zip( 9,880 k)