package com.smartgwt.sample.showcase.client.toolstrip; import java.util.LinkedHashMap; import com.smartgwt.client.types.SelectionType; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.menu.Menu; 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.toolbar.ToolStrip; import com.smartgwt.client.widgets.toolbar.ToolStripButton; import com.smartgwt.client.widgets.toolbar.ToolStripMenuButton; import com.smartgwt.sample.showcase.client.PanelFactory; import com.smartgwt.sample.showcase.client.ShowcasePanel; public class ToolStripSample extends ShowcasePanel { private static final String DESCRIPTION = "Click the icons at left to see \"radio\"-style selection. Click the drop-down to see font options."; public static class Factory implements PanelFactory { private String id; public ShowcasePanel create() { ToolStripSample panel = new ToolStripSample(); id = panel.getID(); return panel; } public String getID() { return id; } public String getDescription() { return DESCRIPTION; } } public Canvas getViewPanel() { ToolStrip toolStrip = new ToolStrip(); toolStrip.setWidth(600); //push all buttons to the right toolStrip.addFill(); ToolStripMenuButton menuButton = getToolStripMenuButton(); toolStrip.addMenuButton(menuButton); toolStrip.addSeparator(); ToolStripButton iconButton = new ToolStripButton(); iconButton.setIcon("silk/printer.png"); iconButton.setTitle("Print"); toolStrip.addButton(iconButton); toolStrip.addResizer(); ToolStripButton boldButton = new ToolStripButton(); boldButton.setIcon("[SKIN]/RichTextEditor/text_bold.png"); boldButton.setActionType(SelectionType.CHECKBOX); toolStrip.addButton(boldButton); ToolStripButton italicsButton = new ToolStripButton(); italicsButton.setIcon("[SKIN]/RichTextEditor/text_italic.png"); italicsButton.setActionType(SelectionType.CHECKBOX); toolStrip.addButton(italicsButton); ToolStripButton underlineButton = new ToolStripButton(); underlineButton.setIcon("[SKIN]/RichTextEditor/text_underline.png"); underlineButton.setActionType(SelectionType.CHECKBOX); toolStrip.addButton(underlineButton); toolStrip.addSeparator(); ToolStripButton alignLeftButton = new ToolStripButton(); alignLeftButton.setIcon("[SKIN]/RichTextEditor/text_align_left.png"); alignLeftButton.setActionType(SelectionType.RADIO); alignLeftButton.setRadioGroup("textAlign"); toolStrip.addButton(alignLeftButton); ToolStripButton alignRightButton = new ToolStripButton(); alignRightButton.setIcon("[SKIN]/RichTextEditor/text_align_right.png"); alignRightButton.setActionType(SelectionType.RADIO); alignRightButton.setRadioGroup("textAlign"); toolStrip.addButton(alignRightButton); ToolStripButton alignCenterButton = new ToolStripButton(); alignCenterButton.setIcon("[SKIN]/RichTextEditor/text_align_center.png"); alignCenterButton.setActionType(SelectionType.RADIO); alignCenterButton.setRadioGroup("textAlign"); toolStrip.addButton(alignCenterButton); toolStrip.addSeparator(); SelectItem fontItem = new SelectItem(); fontItem.setShowTitle(false); fontItem.setWidth(120); LinkedHashMap<String, String> valueMap = new LinkedHashMap<String, String>(); valueMap.put("courier", "<span style='font-family:courier'>Courier</span>"); valueMap.put("verdana", "<span style='font-family:verdana'>Verdana</span>"); valueMap.put("times", "<span style='font-family:times'>Times</span>"); fontItem.setValueMap(valueMap); fontItem.setDefaultValue("verdana"); toolStrip.addFormItem(fontItem); toolStrip.addResizer(); SelectItem zoomItems = new SelectItem(); zoomItems.setName("selectName"); zoomItems.setShowTitle(false); zoomItems.setWidth(100); zoomItems.setValueMap("50%", "75%", "100%", "200%", "Fit"); zoomItems.setDefaultValue("100%"); toolStrip.addFormItem(zoomItems); return toolStrip; } private ToolStripMenuButton getToolStripMenuButton() { Menu menu = new Menu(); menu.setShowShadow(true); menu.setShadowDepth(3); 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"; } } }); menu.setItems(activateMenu, newItem, openItem, separator, saveItem, saveAsItem, separator, recentDocItem, separator, exportItem, separator, printItem); ToolStripMenuButton menuButton = new ToolStripMenuButton("File", menu); menuButton.setWidth(100); return menuButton; } public String getIntro() { return DESCRIPTION; } }