menus.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:7k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!
  2.  * Ext JS Library 3.0.0
  3.  * Copyright(c) 2006-2009 Ext JS, LLC
  4.  * licensing@extjs.com
  5.  * http://www.extjs.com/license
  6.  */
  7. Ext.onReady(function(){
  8.     Ext.QuickTips.init();
  9.     // Menus can be prebuilt and passed by reference
  10.     var dateMenu = new Ext.menu.DateMenu({
  11.         handler: function(dp, date){
  12.             Ext.example.msg('Date Selected', 'You chose {0}.', date.format('M j, Y'));
  13.         }
  14.     });
  15.     var colorMenu = new Ext.menu.ColorMenu({
  16.         handler: function(cm, color){
  17.             Ext.example.msg('Color Selected', 'You chose {0}.', color);
  18.         }
  19.     });
  20.     
  21.     var store = new Ext.data.ArrayStore({
  22.         fields: ['abbr', 'state'],
  23.         data : Ext.exampledata.states // from states.js
  24.     });
  25.     var combo = new Ext.form.ComboBox({
  26.         store: store,
  27.         displayField: 'state',
  28.         typeAhead: true,
  29.         mode: 'local',
  30.         triggerAction: 'all',
  31.         emptyText: 'Select a state...',
  32.         selectOnFocus: true,
  33.         width: 135,
  34.         getListParent: function() {
  35.             return this.el.up('.x-menu');
  36.         },
  37.         iconCls: 'no-icon'
  38.     });
  39.     var menu = new Ext.menu.Menu({
  40.         id: 'mainMenu',
  41.         style: {
  42.             overflow: 'visible'     // For the Combo popup
  43.         },
  44.         items: [
  45.             combo,                  // A Field in a Menu
  46.             {
  47.                 text: 'I like Ext',
  48.                 checked: true,       // when checked has a boolean value, it is assumed to be a CheckItem
  49.                 checkHandler: onItemCheck
  50.             }, '-', {
  51.                 text: 'Radio Options',
  52.                 menu: {        // <-- submenu by nested config object
  53.                     items: [
  54.                         // stick any markup in a menu
  55.                         '<b class="menu-title">Choose a Theme</b>',
  56.                         {
  57.                             text: 'Aero Glass',
  58.                             checked: true,
  59.                             group: 'theme',
  60.                             checkHandler: onItemCheck
  61.                         }, {
  62.                             text: 'Vista Black',
  63.                             checked: false,
  64.                             group: 'theme',
  65.                             checkHandler: onItemCheck
  66.                         }, {
  67.                             text: 'Gray Theme',
  68.                             checked: false,
  69.                             group: 'theme',
  70.                             checkHandler: onItemCheck
  71.                         }, {
  72.                             text: 'Default Theme',
  73.                             checked: false,
  74.                             group: 'theme',
  75.                             checkHandler: onItemCheck
  76.                         }
  77.                     ]
  78.                 }
  79.             },{
  80.                 text: 'Choose a Date',
  81.                 iconCls: 'calendar',
  82.                 menu: dateMenu // <-- submenu by reference
  83.             },{
  84.                 text: 'Choose a Color',
  85.                 menu: colorMenu // <-- submenu by reference
  86.             }
  87.         ]
  88.     });
  89.     var tb = new Ext.Toolbar();
  90.     tb.render('toolbar');
  91.     tb.add({
  92.             text:'Button w/ Menu',
  93.             iconCls: 'bmenu',  // <-- icon
  94.             menu: menu  // assign menu by instance
  95.         }, 
  96.         new Ext.Toolbar.SplitButton({
  97.             text: 'Split Button',
  98.             handler: onButtonClick,
  99.             tooltip: {text:'This is a an example QuickTip for a toolbar item', title:'Tip Title'},
  100.             iconCls: 'blist',
  101.             // Menus can be built/referenced by using nested menu config objects
  102.             menu : {
  103.                 items: [{
  104.                     text: '<b>Bold</b>', handler: onItemClick
  105.                 }, {
  106.                     text: '<i>Italic</i>', handler: onItemClick
  107.                 }, {
  108.                     text: '<u>Underline</u>', handler: onItemClick
  109.                 }, '-', {
  110.                     text: 'Pick a Color',
  111.                     handler: onItemClick,
  112.                     menu: {
  113.                         items: [
  114.                             new Ext.ColorPalette({
  115.                                 listeners: {
  116.                                     select: function(cp, color){
  117.                                         Ext.example.msg('Color Selected', 'You chose {0}.', color);
  118.                                     }
  119.                                 }
  120.                             }), '-',
  121.                             {
  122.                                 text: 'More Colors...',
  123.                                 handler: onItemClick
  124.                             }
  125.                         ]
  126.                     }
  127.                 }, {
  128.                     text: 'Extellent!',
  129.                     handler: onItemClick
  130.                 }]
  131.             }
  132.         }), '-', {
  133.         text: 'Toggle Me',
  134.         enableToggle: true,
  135.         toggleHandler: onItemToggle,
  136.         pressed: true
  137.     });
  138.     menu.addSeparator();
  139.     // Menus have a rich api for
  140.     // adding and removing elements dynamically
  141.     var item = menu.add({
  142.         text: 'Dynamically added Item'
  143.     });
  144.     // items support full Observable API
  145.     item.on('click', onItemClick);
  146.     // items can easily be looked up
  147.     menu.add({
  148.         text: 'Disabled Item',
  149.         id: 'disableMe'  // <-- Items can also have an id for easy lookup
  150.         // disabled: true   <-- allowed but for sake of example we use long way below
  151.     });
  152.     // access items by id or index
  153.     menu.items.get('disableMe').disable();
  154.     // They can also be referenced by id in or components
  155.     tb.add('-', {
  156.         icon: 'list-items.gif', // icons can also be specified inline
  157.         cls: 'x-btn-icon',
  158.         tooltip: '<b>Quick Tips</b><br/>Icon only button with tooltip'
  159.     }, '-');
  160.     
  161.     var scrollMenu = new Ext.menu.Menu();
  162.     for (var i = 0; i < 50; ++i){
  163.         scrollMenu.add({
  164.             text: 'Item ' + (i + 1)
  165.         });
  166.     }
  167.     // scrollable menu
  168.     tb.add({
  169.         icon: 'preview.png',
  170.         cls: 'x-btn-text-icon',
  171.         text: 'Scrolling Menu',
  172.         menu: scrollMenu
  173.     });
  174.     // add a combobox to the toolbar
  175.     var combo = new Ext.form.ComboBox({
  176.         store: store,
  177.         displayField: 'state',
  178.         typeAhead: true,
  179.         mode: 'local',
  180.         triggerAction: 'all',
  181.         emptyText:'Select a state...',
  182.         selectOnFocus:true,
  183.         width:135
  184.     });
  185.     tb.addField(combo);
  186.     tb.doLayout();
  187.     // functions to display feedback
  188.     function onButtonClick(btn){
  189.         Ext.example.msg('Button Click','You clicked the "{0}" button.', btn.text);
  190.     }
  191.     function onItemClick(item){
  192.         Ext.example.msg('Menu Click', 'You clicked the "{0}" menu item.', item.text);
  193.     }
  194.     function onItemCheck(item, checked){
  195.         Ext.example.msg('Item Check', 'You {1} the "{0}" menu item.', item.text, checked ? 'checked' : 'unchecked');
  196.     }
  197.     function onItemToggle(item, pressed){
  198.         Ext.example.msg('Button Toggled', 'Button "{0}" was toggled to {1}.', item.text, pressed);
  199.     }
  200. });