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
this.combo.on('select', function(cb, rec, ix) {
- Roo.log([cb, rec, ix]);
this.addItem(rec.data);
cb.setValue('');
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) {
- Roo.log("GOT Record");
- Roo.log(this.items);
- Roo.log(rec);
+ //console.log("GOT " + rec.data.id);
return;
}
updateHiddenEl : function()
{
+ Roo.log('udate hidden el');
this.validate();
if (!this.hiddenEl) {
return;
if(this.cb.disabled){
return;
}
- 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);
+ 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