Roo/form/ComboBoxArray.js
[roojs1] / Roo / form / ComboBoxArray.js
index 700aa90..b920f13 100644 (file)
@@ -102,6 +102,11 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
         this.combo = Roo.factory(this.combo, Roo.form);
         this.combo.onRender(ct, position);
         
+        // assigned so form know we need to do this..
+        this.store          = this.combo.store;
+        this.valueField     = this.combo.valueField;
+        this.displayField   = this.combo.displayField ;
+        
         
         this.combo.wrap.addClass('x-cbarray-grp');
         
@@ -171,13 +176,15 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
     {
         // returns hidden if it's set..
         if (!this.rendered) {return ''};
-        return  this.hiddenListName;
+        return  this.hiddenName ? this.hiddenName : this.name;
         
     },
     
     
     onResize: function(w, h){
         
+        return;
+        // not sure if this is needed..
         this.combo.onResize(w,h);
         
         if(typeof w != 'number'){
@@ -260,15 +267,39 @@ Roo.extend(Roo.form.ComboBoxArray, Roo.form.TextField,
     },
     setValue: function(v) // not a valid action - must use addItems..
     {
-        if (typeof(v) != 'object') {
-            return;
+         
+        
+        if (this.store.isLocal) {
+            // then we can use the store to find the values..
+            // comma seperated at present.. this needs to allow JSON based encoding..
+            this.hiddenField.setValue(v);
+            var v_ar = [];
+            Roo.each(v.split(','), function(k) {
+                var li = this.store.query(this.store.valueField, k);
+                if (!li.length) {
+                    return;
+                }
+                add = {};
+                add[this.store.valueField] = k;
+                add[this.store.displayField] = li.item(0).data[this.store.displayField];
+                
+                this.addItem(add);
+            }, this) 
+            
+                
+            
         }
-        var _this = this;
-        Roo.each(v, function(l) {
-            _this.addItem(l);
-        });
+        
         
     },
+    setFromData: function(v)
+    {
+        Roo.log(v);
+      
+        
+    },
+    
+    
     validateValue : function(value){
         return Roo.form.ComboBoxArray.superclass.validateValue.call(this, this.getValue());