/* * Smart GWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * Smart GWT 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. Smart GWT 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. */ import com.smartgwt.client.util.SC; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.LayoutPolicy; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.IButton; import com.smartgwt.client.widgets.menu.AdaptiveMenu; import com.smartgwt.client.widgets.menu.Menu; import com.smartgwt.client.widgets.menu.MenuItem; import com.smartgwt.client.widgets.menu.events.MenuItemClickEvent; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.HStack; import com.smartgwt.client.widgets.toolbar.ToolStrip; import com.smartgwt.client.widgets.toolbar.ToolStripSeparator; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.google.gwt.core.client.EntryPoint; public class AdaptiveMenuSample implements EntryPoint { private MenuItem createMenuItem(final String title) { MenuItem item = new MenuItem(title); item.addClickHandler(new com.smartgwt.client.widgets.menu.events.ClickHandler() { @Override public void onClick(MenuItemClickEvent event) { SC.say(title); } }); return item; } private HStack createLayoutMenuItemEdit() { HStack hStack = new HStack(); hStack.setHeight100(); hStack.setWidth(190); hStack.setMembersMargin(3); hStack.setLayoutMargin(5); final IButton cutButton = new IButton(); cutButton.setTitle("Cut"); cutButton.setWidth(45); cutButton.setHeight(20); cutButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { SC.say(cutButton.getTitle()); } }); final IButton copyButton = new IButton(); copyButton.setTitle("Copy"); copyButton.setWidth(45); copyButton.setHeight(20); copyButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { SC.say(copyButton.getTitle()); } }); final IButton pasteButton = new IButton(); pasteButton.setTitle("Paste"); pasteButton.setWidth(45); pasteButton.setHeight(20); pasteButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { SC.say(pasteButton.getTitle()); } }); hStack.setMembers(cutButton, copyButton, pasteButton); return hStack; } public void onModuleLoad() { final Label variableName = new Label(); variableName.setContents("
Candidate: Lucy Lu
"); variableName.setWidth(1); variableName.setWrap(false); MenuItem menuItemEdit = new MenuItem(); menuItemEdit.setTitle("Edit"); menuItemEdit.setShowRollOver(false); menuItemEdit.setEmbeddedComponent(createLayoutMenuItemEdit()); menuItemEdit.setEmbeddedComponentFields("key"); Menu menu = new Menu(); menu.setItems(new MenuItem[] { createMenuItem("Contact"), createMenuItem("Hire Now"), createMenuItem("View Résumé"), menuItemEdit }); AdaptiveMenu adaptiveMenu = new AdaptiveMenu(menu); adaptiveMenu.setDefaultLayoutAlign(Alignment.CENTER); ToolStrip toolStrip = new ToolStrip(); toolStrip.setWidth(375); toolStrip.setMembersMargin(5); toolStrip.setLayoutLeftMargin(10); toolStrip.setShowResizeBar(true); toolStrip.setMembers(variableName, new ToolStripSeparator(), adaptiveMenu); HLayout outerLayout = new HLayout(); outerLayout.setHeight(30); outerLayout.setWidth100(); outerLayout.setHPolicy(LayoutPolicy.NONE); outerLayout.setMembers(toolStrip); final IButton toggleName = new IButton(); toggleName.addClickHandler(new ClickHandler() { boolean longName = true; @Override public void onClick(ClickEvent event) { longName = !longName; String name = longName ? "Alejandro O'Reilly" : "Lucy Lu"; variableName.setContents("
Candidate: " + name + "
"); toggleName.setTitle(longName ? "Shorter Name" : "Longer Name"); } }); toggleName.setTop(50); toggleName.fireEvent(new ClickEvent(null){}); Canvas canvas = new Canvas(); canvas.addChild(outerLayout); canvas.addChild(toggleName); canvas.draw(); } }