X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/examples/menu/menus.js diff --git a/examples/menu/menus.js b/examples/menu/menus.js index 082c9ec4..b4f0141c 100644 --- a/examples/menu/menus.js +++ b/examples/menu/menus.js @@ -1,176 +1,216 @@ -/* - * Ext JS Library 2.2.1 - * Copyright(c) 2006-2009, Ext JS, LLC. - * licensing@extjs.com - * - * http://extjs.com/license - */ - -Ext.onReady(function(){ - Ext.QuickTips.init(); - - // Menus can be prebuilt and passed by reference - var dateMenu = new Ext.menu.DateMenu({ - handler : function(dp, date){ - Ext.example.msg('Date Selected', 'You chose {0}.', date.format('M j, Y')); - } - }); - - var colorMenu = new Ext.menu.ColorMenu({ - handler : function(cm, color){ - Ext.example.msg('Color Selected', 'You chose {0}.', color); - } - }); - - var menu = new Ext.menu.Menu({ - id: 'mainMenu', - items: [ - { - text: 'I like Ext', - checked: true, // when checked has a boolean value, it is assumed to be a CheckItem - checkHandler: onItemCheck - }, - { - text: 'Ext for jQuery', - checked: true, - checkHandler: onItemCheck - }, - { - text: 'I donated!', - checked:false, - checkHandler: onItemCheck - }, '-', { - text: 'Radio Options', - menu: { // <-- submenu by nested config object - items: [ - // stick any markup in a menu - 'Choose a Theme', - { - text: 'Aero Glass', - checked: true, - group: 'theme', - checkHandler: onItemCheck - }, { - text: 'Vista Black', - checked: false, - group: 'theme', - checkHandler: onItemCheck - }, { - text: 'Gray Theme', - checked: false, - group: 'theme', - checkHandler: onItemCheck - }, { - text: 'Default Theme', - checked: false, - group: 'theme', - checkHandler: onItemCheck - } - ] - } - },{ - text: 'Choose a Date', - iconCls: 'calendar', - menu: dateMenu // <-- submenu by reference - },{ - text: 'Choose a Color', - menu: colorMenu // <-- submenu by reference - } - ] - }); - - var tb = new Ext.Toolbar(); - tb.render('toolbar'); - - tb.add({ - text:'Button w/ Menu', - iconCls: 'bmenu', // <-- icon - menu: menu // assign menu by instance - }, - new Ext.Toolbar.MenuButton({ - text: 'Split Button', - handler: onButtonClick, - tooltip: {text:'This is a an example QuickTip for a toolbar item', title:'Tip Title'}, - iconCls: 'blist', - // Menus can be built/referenced by using nested menu config objects - menu : {items: [ - {text: 'Bold', handler: onItemClick}, - {text: 'Italic', handler: onItemClick}, - {text: 'Underline', handler: onItemClick}, '-',{ - text: 'Pick a Color', handler: onItemClick, menu: { - items: [ - new Ext.menu.ColorItem({selectHandler:function(cp, color){ - Ext.example.msg('Color Selected', 'You chose {0}.', color); - }}), '-', - {text:'More Colors...', handler:onItemClick} - ] - }}, - {text: 'Extellent!', handler: onItemClick} - ]} - }), '-', { - text: 'Toggle Me', - enableToggle: true, - toggleHandler: onItemToggle, - pressed: true - }); - - menu.addSeparator(); - // Menus have a rich api for - // adding and removing elements dynamically - var item = menu.add({ - text: 'Dynamically added Item' - }); - // items support full Observable API - item.on('click', onItemClick); - - // items can easily be looked up - menu.add({ - text: 'Disabled Item', - id: 'disableMe' // <-- Items can also have an id for easy lookup - // disabled: true <-- allowed but for sake of example we use long way below - }); - // access items by id or index - menu.items.get('disableMe').disable(); - - // They can also be referenced by id in or components - tb.add('-', { - icon: 'list-items.gif', // icons can also be specified inline - cls: 'x-btn-icon', - tooltip: 'Quick Tips
Icon only button with tooltip' - }, '-'); - - // add a combobox to the toolbar - var store = new Ext.data.SimpleStore({ - fields: ['abbr', 'state'], - data : Ext.exampledata.states // from states.js - }); - var combo = new Ext.form.ComboBox({ - store: store, - displayField:'state', - typeAhead: true, - mode: 'local', - triggerAction: 'all', - emptyText:'Select a state...', - selectOnFocus:true, - width:135 - }); - tb.addField(combo); - - // functions to display feedback - function onButtonClick(btn){ - Ext.example.msg('Button Click','You clicked the "{0}" button.', btn.text); - } - - function onItemClick(item){ - Ext.example.msg('Menu Click', 'You clicked the "{0}" menu item.', item.text); - } - - function onItemCheck(item, checked){ - Ext.example.msg('Item Check', 'You {1} the "{0}" menu item.', item.text, checked ? 'checked' : 'unchecked'); - } - - function onItemToggle(item, pressed){ - Ext.example.msg('Button Toggled', 'Button "{0}" was toggled to {1}.', item.text, pressed); - } - +/*! + * Ext JS Library 3.0.0 + * Copyright(c) 2006-2009 Ext JS, LLC + * licensing@extjs.com + * http://www.extjs.com/license + */ +Ext.onReady(function(){ + Ext.QuickTips.init(); + + // Menus can be prebuilt and passed by reference + var dateMenu = new Ext.menu.DateMenu({ + handler: function(dp, date){ + Ext.example.msg('Date Selected', 'You chose {0}.', date.format('M j, Y')); + } + }); + + var colorMenu = new Ext.menu.ColorMenu({ + handler: function(cm, color){ + Ext.example.msg('Color Selected', 'You chose {0}.', color); + } + }); + + var store = new Ext.data.ArrayStore({ + fields: ['abbr', 'state'], + data : Ext.exampledata.states // from states.js + }); + + var combo = new Ext.form.ComboBox({ + store: store, + displayField: 'state', + typeAhead: true, + mode: 'local', + triggerAction: 'all', + emptyText: 'Select a state...', + selectOnFocus: true, + width: 135, + getListParent: function() { + return this.el.up('.x-menu'); + }, + iconCls: 'no-icon' + }); + + var menu = new Ext.menu.Menu({ + id: 'mainMenu', + style: { + overflow: 'visible' // For the Combo popup + }, + items: [ + combo, // A Field in a Menu + { + text: 'I like Ext', + checked: true, // when checked has a boolean value, it is assumed to be a CheckItem + checkHandler: onItemCheck + }, '-', { + text: 'Radio Options', + menu: { // <-- submenu by nested config object + items: [ + // stick any markup in a menu + 'Choose a Theme', + { + text: 'Aero Glass', + checked: true, + group: 'theme', + checkHandler: onItemCheck + }, { + text: 'Vista Black', + checked: false, + group: 'theme', + checkHandler: onItemCheck + }, { + text: 'Gray Theme', + checked: false, + group: 'theme', + checkHandler: onItemCheck + }, { + text: 'Default Theme', + checked: false, + group: 'theme', + checkHandler: onItemCheck + } + ] + } + },{ + text: 'Choose a Date', + iconCls: 'calendar', + menu: dateMenu // <-- submenu by reference + },{ + text: 'Choose a Color', + menu: colorMenu // <-- submenu by reference + } + ] + }); + + var tb = new Ext.Toolbar(); + tb.render('toolbar'); + + tb.add({ + text:'Button w/ Menu', + iconCls: 'bmenu', // <-- icon + menu: menu // assign menu by instance + }, + new Ext.Toolbar.SplitButton({ + text: 'Split Button', + handler: onButtonClick, + tooltip: {text:'This is a an example QuickTip for a toolbar item', title:'Tip Title'}, + iconCls: 'blist', + // Menus can be built/referenced by using nested menu config objects + menu : { + items: [{ + text: 'Bold', handler: onItemClick + }, { + text: 'Italic', handler: onItemClick + }, { + text: 'Underline', handler: onItemClick + }, '-', { + text: 'Pick a Color', + handler: onItemClick, + menu: { + items: [ + new Ext.ColorPalette({ + listeners: { + select: function(cp, color){ + Ext.example.msg('Color Selected', 'You chose {0}.', color); + } + } + }), '-', + { + text: 'More Colors...', + handler: onItemClick + } + ] + } + }, { + text: 'Extellent!', + handler: onItemClick + }] + } + }), '-', { + text: 'Toggle Me', + enableToggle: true, + toggleHandler: onItemToggle, + pressed: true + }); + + menu.addSeparator(); + // Menus have a rich api for + // adding and removing elements dynamically + var item = menu.add({ + text: 'Dynamically added Item' + }); + // items support full Observable API + item.on('click', onItemClick); + + // items can easily be looked up + menu.add({ + text: 'Disabled Item', + id: 'disableMe' // <-- Items can also have an id for easy lookup + // disabled: true <-- allowed but for sake of example we use long way below + }); + // access items by id or index + menu.items.get('disableMe').disable(); + + // They can also be referenced by id in or components + tb.add('-', { + icon: 'list-items.gif', // icons can also be specified inline + cls: 'x-btn-icon', + tooltip: 'Quick Tips
Icon only button with tooltip' + }, '-'); + + var scrollMenu = new Ext.menu.Menu(); + for (var i = 0; i < 50; ++i){ + scrollMenu.add({ + text: 'Item ' + (i + 1) + }); + } + // scrollable menu + tb.add({ + icon: 'preview.png', + cls: 'x-btn-text-icon', + text: 'Scrolling Menu', + menu: scrollMenu + }); + + // add a combobox to the toolbar + var combo = new Ext.form.ComboBox({ + store: store, + displayField: 'state', + typeAhead: true, + mode: 'local', + triggerAction: 'all', + emptyText:'Select a state...', + selectOnFocus:true, + width:135 + }); + tb.addField(combo); + + tb.doLayout(); + + // functions to display feedback + function onButtonClick(btn){ + Ext.example.msg('Button Click','You clicked the "{0}" button.', btn.text); + } + + function onItemClick(item){ + Ext.example.msg('Menu Click', 'You clicked the "{0}" menu item.', item.text); + } + + function onItemCheck(item, checked){ + Ext.example.msg('Item Check', 'You {1} the "{0}" menu item.', item.text, checked ? 'checked' : 'unchecked'); + } + + function onItemToggle(item, pressed){ + Ext.example.msg('Button Toggled', 'Button "{0}" was toggled to {1}.', item.text, pressed); + } + }); \ No newline at end of file