allow string based values for comboboxarray
[roojs1] / Roo / BorderLayout.js
index dd2f6ce..aeda210 100644 (file)
@@ -122,7 +122,9 @@ Roo.extend(Roo.BorderLayout, Roo.LayoutManager, {
      * Performs a layout update.
      */
     layout : function(){
-        if(this.updating) return;
+        if(this.updating) {
+            return;
+        }
         var size = this.getViewSize();
         var w = size.width;
         var h = size.height;
@@ -399,6 +401,7 @@ layout.addxtype({
         {
             case 'ContentPanel':  // ContentPanel (el, cfg)
             case 'ScrollPanel':  // ContentPanel (el, cfg)
+            case 'ViewPanel': 
                 if(cfg.autoCreate) {
                     ret = new Roo[cfg.xtype](cfg); // new panel!!!!!
                 } else {
@@ -464,33 +467,56 @@ layout.addxtype({
                 }
                 break;
            
-               
+           
+           
+                
+                
+                
+            default:
+                if (typeof(Roo[cfg.xtype]) != 'undefined') {
+                    
+                    ret = new Roo[cfg.xtype](cfg); // new panel!!!!!
+                    this.add(region, ret);
+                } else {
                 
+                    alert("Can not add '" + cfg.xtype + "' to BorderLayout");
+                    return null;
+                }
                 
-            default: 
-                alert("Can not add '" + cfg.xtype + "' to BorderLayout");
-                return null;
              // GridPanel (grid, cfg)
             
         }
         this.beginUpdate();
         // add children..
-        
+        var region = '';
+        var abn = {};
         Roo.each(xitems, function(i)  {
+            region = nb && i.region ? i.region : false;
             
             var add = ret.addxtype(i);
-            
-            if (nb !== false  && !add.background  && i.region) {
-                nb[i.region] = add;
+           
+            if (region) {
+                nb[region] = nb[region] == undefined ? 0 : nb[region]+1;
+                if (!i.background) {
+                    abn[region] = nb[region] ;
+                }
             }
             
         });
         this.endUpdate();
+
         // make the last non-background panel active..
-        Roo.log(nb);
+        //if (nb) { Roo.log(abn); }
         if (nb) {
-            for(var r in nb) {
-               this.getRegion(r).showPanel(nb);
+            
+            for(var r in abn) {
+                region = this.getRegion(r);
+                if (region) {
+                    // tried using nb[r], but it does not work..
+                     
+                    region.showPanel(abn[r]);
+                   
+                }
             }
         }
         return ret;