CharPickerMenu.js (1645B)
1 Ext.define('PartKeepr.ContextMenu.CharPicker', { 2 extend: 'Ext.menu.Menu', 3 4 alias: 'widget.charpickermenu', 5 6 /** 7 * @cfg {Boolean} hideOnClick 8 * False to continue showing the menu after a date is selected. 9 */ 10 hideOnClick : true, 11 12 /** 13 * @cfg {String} pickerId 14 * An id to assign to the underlying char picker. 15 */ 16 pickerId : null, 17 18 /** 19 * @cfg {Number} maxHeight 20 * @hide 21 */ 22 23 /** 24 * @property {PartKeepr.picker.Char} picker 25 * The {@link PartKeepr.picker.Char} instance for this char picker 26 */ 27 28 /** 29 * @event click 30 * @hide 31 */ 32 33 /** 34 * @event itemclick 35 * @hide 36 */ 37 38 initComponent : function(){ 39 var me = this, 40 cfg = Ext.apply({}, me.initialConfig); 41 42 // Ensure we don't get duplicate listeners 43 delete cfg.listeners; 44 Ext.apply(me, { 45 plain: true, 46 showSeparator: false, 47 items: Ext.applyIf({ 48 cls: Ext.baseCSSPrefix + 'menu-char-item', 49 id: me.pickerId, 50 xtype: 'charpicker' 51 }, cfg) 52 }); 53 54 me.callParent(arguments); 55 56 me.picker = me.down('charpicker'); 57 58 /** 59 * @event select 60 * @alias PartKeepr.picker.Char#select 61 */ 62 me.relayEvents(me.picker, ['select']); 63 64 if (me.hideOnClick) { 65 me.on('select', me.hidePickerOnSelect, me); 66 } 67 }, 68 69 /** 70 * Hides picker on select if hideOnClick is true 71 * @private 72 */ 73 hidePickerOnSelect: function() { 74 Ext.menu.Manager.hideAll(); 75 } 76 });