Add click handler for Menu item (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.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.MenuItemSeparator; import com.smartgwt.client.widgets.menu.MenuItemStringFunction; import com.smartgwt.client.widgets.menu.events.ClickHandler; import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent; public class Showcase implements EntryPoint { public void onModuleLoad() { RootPanel.get().add(getViewPanel()); } public Canvas getViewPanel() { Menu menu = new Menu(); menu.setShowShadow(true); menu.setShadowDepth(10); MenuItem newItem = new MenuItem("New", "icons/16/document_plain_new.png", "Ctrl+N"); MenuItem openItem = new MenuItem("Open", "icons/16/folder_out.png", "Ctrl+O"); MenuItem saveItem = new MenuItem("Save", "icons/16/disk_blue.png", "Ctrl+S"); MenuItem saveAsItem = new MenuItem("Save As", "icons/16/save_as.png"); MenuItem recentDocItem = new MenuItem("Recent Documents", "icons/16/folder_document.png"); Menu recentDocSubMenu = new Menu(); MenuItem dataSM = new MenuItem("data.xml"); dataSM.setChecked(true); MenuItem componentSM = new MenuItem("Component Guide.doc"); MenuItem ajaxSM = new MenuItem("AJAX.doc"); recentDocSubMenu.setItems(dataSM, componentSM, ajaxSM); recentDocItem.setSubmenu(recentDocSubMenu); MenuItem exportItem = new MenuItem("Export as...", "icons/16/export1.png"); Menu exportSM = new Menu(); exportSM.setItems( new MenuItem("XML"), new MenuItem("CSV"), new MenuItem("Plain text")); exportItem.setSubmenu(exportSM); MenuItem printItem = new MenuItem("Print", "icons/16/printer3.png", "Ctrl+P"); printItem.setEnabled(false); MenuItemSeparator separator = new MenuItemSeparator(); final MenuItem activateMenu = new MenuItem("Activate"); activateMenu.setDynamicTitleFunction(new MenuItemStringFunction() { public String execute(final Canvas aTarget, final Menu aMenu, final MenuItem aItem) { if (Math.random() > 0.5) { return "De-Activate Blacklist"; } else { return "Activate Blacklist"; } } }); activateMenu.addClickHandler(new ClickHandler() { public void onClick(final MenuItemClickEvent event) { //processStateChangeEvent(); } }); menu.setItems(activateMenu, newItem, openItem, separator, saveItem, saveAsItem, separator, recentDocItem, separator, exportItem, separator, printItem); return new MenuButton("File", menu); } }