Roo/form/ComboBoxArray.js
[roojs1] / Roo / form / ComboBoxArray.js
index 76c4892..bcf25d3 100644 (file)
 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
@@ -227,10 +234,12 @@ 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);
+            //console.log("GOT " + rec.data.id);
             return;
         }
         
@@ -251,6 +260,7 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
     
     updateHiddenEl : function()
     {
+        Roo.log('udate hidden el');
         this.validate();
         if (!this.hiddenEl) {
             return;
@@ -461,11 +471,15 @@ Roo.extend(Roo.form.ComboBoxArray.Item, Roo.BoxComponent, {
         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