SiUnitCombo.js (1816B)
1 Ext.define("PartKeepr.Components.Widgets.SiUnitCombo", { 2 extend: "Ext.form.field.ComboBox", 3 xtype: 'SiUnitCombo', 4 5 forceSelection: true, 6 singleSelect: true, 7 editable: true, 8 typeAhead: true, 9 10 queryMode: 'local', 11 displayField: 'symbol', 12 valueField: 'symbol', 13 14 defaultListConfig: { 15 loadingHeight: 70, 16 minWidth: 150, 17 maxHeight: 300, 18 shadow: 'sides' 19 }, 20 21 createPicker: function () 22 { 23 var me = this, 24 picker, 25 pickerCfg = Ext.apply({ 26 xtype: 'siunitlist', 27 id: me.pickerId, 28 pickerField: me, 29 selectionModel: me.pickerSelectionModel, 30 floating: true, 31 hidden: true, 32 store: me.getPickerStore(), 33 displayField: me.displayField, 34 preserveScrollOnRefresh: true, 35 pageSize: me.pageSize, 36 tpl: me.tpl 37 }, me.listConfig, me.defaultListConfig); 38 39 picker = me.picker = Ext.widget(pickerCfg); 40 if (me.pageSize) { 41 picker.pagingToolbar.on('beforechange', me.onPageChange, me); 42 } 43 44 // We limit the height of the picker to fit in the space above 45 // or below this field unless the picker has its own ideas about that. 46 if (!picker.initialConfig.maxHeight) { 47 picker.on({ 48 beforeshow: me.onBeforePickerShow, 49 scope: me 50 }); 51 } 52 picker.getSelectionModel().on({ 53 beforeselect: me.onBeforeSelect, 54 beforedeselect: me.onBeforeDeselect, 55 focuschange: me.onFocusChange, 56 scope: me 57 }); 58 59 picker.getNavigationModel().navigateOnSpace = false; 60 61 return picker; 62 } 63 });