raimund@548: /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
raimund@548:  * Software engineering by Intevation GmbH
raimund@548:  *
raimund@548:  * This file is Free Software under the GNU GPL (v>=3)
raimund@548:  * and comes with ABSOLUTELY NO WARRANTY! Check out
raimund@548:  * the documentation coming with IMIS-Labordaten-Application for details.
raimund@548:  */
raimund@548: 
raimund@548: /**
raimund@548:  * Combobox for Netzbetreiber
raimund@548:  */
raimund@548: Ext.define('Lada.view.widget.Netzbetreiber', {
raimund@548:     extend: 'Lada.view.widget.base.ComboBox',
raimund@548:     alias: 'widget.netzbetreiber',
raimund@548:     store: 'StaNetzbetreiber',
raimund@548:     displayField: 'netzbetreiber',
raimund@548:     valueField: 'id',
raimund@1125:     editable: this.editable || false,
dustin@847:     readOnly: this.readOnly,
tom@1217:     isFormField: this.isFormField,
tom@1217:     submitValue: this.submitValue,
raimund@548:     // Enable filtering of comboboxes
raimund@548:     queryMode: 'local',
raimund@548:     triggerAction: 'all',
raimund@548:     typeAhead: false,
raimund@548:     minChars: 0,
raimund@548: 
raimund@548:     initComponent: function() {
dustin@755:         var i18n = Lada.getApplication().bundle;
dustin@830:         this.emptyText = i18n.getMsg('emptytext.netzbetreiber');
dustin@755: 
raimund@548:         this.store = Ext.data.StoreManager.get('netzbetreiber');
raimund@548:         if (!this.store) {
raimund@548:             this.store = Ext.create('Lada.store.Netzbetreiber');
raimund@548:         }
dustin@740:         else {
dustin@740:             this.store.clearFilter();
dustin@740:         }
raimund@548:         this.callParent(arguments);
tom@1217:         this.down('combobox').isFormField = false;
tom@1217:         this.down('combobox').submitValue = false;
raimund@1080:     },
raimund@1080: 
raimund@1080:     getValue: function() {
raimund@1080:         var value = this.down('combobox').getValue();
raimund@1151:         if (value === undefined || value === null || value === '') {
raimund@1151:             return [];
raimund@1151:         }
raimund@1080:         if (value instanceof Array) {
raimund@1080:             return value;
raimund@1080:         }
raimund@1080:         value = value.trim().split(' ');
raimund@1080:         var retValues = [];
raimund@1080:         for (var i = 0; i < value.length; i++) {
raimund@1080:             var item = value[i];
raimund@1080:             var found = this.store.queryBy(function(rec) {
raimund@1080:                 if (rec.get('id') == item ||
raimund@1080:                     rec.get('netzbetreiber') == item) {
raimund@1080:                     return true;
raimund@1080:                 }
raimund@1080:             });
raimund@1080:             if (found.getCount() >= 0) {
raimund@1080:                 retValues.push(found.getAt(0).get('id'));
raimund@1080:                 continue;
raimund@1080:             }
raimund@1080:         }
raimund@1080:         return retValues;
raimund@548:     }
raimund@548: });