X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fform%2FComboBoxArray.js;h=bcf25d360813d33e2881a31738ab32f7676e4b00;hb=b98cd2471445f508fbbf7a1c468aec408042a2ab;hp=74a02899fb207182ec6ec387890eaa4b9ec4c9bb;hpb=4c028cc735ffaaa41aeaf05ea70dc4810513397d;p=roojs1 diff --git a/Roo/form/ComboBoxArray.js b/Roo/form/ComboBoxArray.js index 74a02899fb..bcf25d3608 100644 --- a/Roo/form/ComboBoxArray.js +++ b/Roo/form/ComboBoxArray.js @@ -37,10 +37,18 @@ Roo.form.ComboBoxArray = function(config) { this.addEvents({ + /** + * @event beforeremove + * Fires before remove the value from the list + * @param {Roo.form.ComboBoxArray} _self This combo box array + * @param {Roo.form.ComboBoxArray.Item} item removed item + */ + 'beforeremove' : true, /** * @event remove * Fires when remove the value from the list - * @param {Roo.form.ComboBox} combo This combo box + * @param {Roo.form.ComboBoxArray} _self This combo box array + * @param {Roo.form.ComboBoxArray.Item} item removed item */ 'remove' : true @@ -226,8 +234,10 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, addItem: function(rec) { + Roo.log('add Itme????'); var valueField = this.combo.valueField; var displayField = this.combo.displayField; + Roo.log(this.items); if (this.items.indexOfKey(rec[valueField]) > -1) { //console.log("GOT " + rec.data.id); return; @@ -250,6 +260,7 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, updateHiddenEl : function() { + Roo.log('udate hidden el'); this.validate(); if (!this.hiddenEl) { return; @@ -307,7 +318,7 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField, }, this) } - if (typeof(v) == 'object') { + if (typeof(v) == 'object' ) { // then let's assume it's an array of objects.. Roo.each(v, function(l) { this.addItem(l); @@ -457,13 +468,18 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, { remove : function() { - Roo.log(this); - this.cb.items.remove(this); - this.el.child('img').un('click', this.remove, this); - this.el.remove(); - this.cb.updateHiddenEl(); - - Roo.log('remove?????'); - this.cb.fireEvent('remove', this.cb, this); + if(this.cb.disabled){ + return; + } + + if(false !== this.cb.fireEvent('beforeremove', this.cb, this)){ + this.cb.items.remove(this); + this.el.child('img').un('click', this.remove, this); + this.el.remove(); + this.cb.updateHiddenEl(); + + this.cb.fireEvent('remove', this.cb, this); + } + } }); \ No newline at end of file