builder.html.js
[app.Builder.js] / builder.html.js
index 8a3cba9..c7d539f 100644 (file)
@@ -1,5 +1,5 @@
 //<script type="text/javascript">
-
 
 Builder  = {
     
@@ -82,7 +82,7 @@ Builder  = {
         
         
         this.munge(cfg);
-        console.log(this.dump(cfg));return;
+        //console.log(this.dump(cfg)); 
         // we draw either a dialog or a tab..
         
         if (cfg.xtype == 'LayoutDialog') {
@@ -96,7 +96,7 @@ Builder  = {
             this.dialogroot = Roo.get( document.body).createChild({
                 id : cfg.id
             });
-             
+            
             this.dialog = new Roo[cfg.xtype](this.dialogroot, cfg);
             //this.dialog.el.on('click', this.panelClick, this);
             this.dialog.show();
@@ -127,14 +127,22 @@ Builder  = {
                 }
             });
         }
-        this.layoutbase.addxtype(  cfg ); 
-        
+        try {
+            console.log("ADDING CFG");    
+            this.layoutbase.addxtype(  cfg ); 
+        } catch (e) {
+            console.log("GOT ERROR?");    
+            console.log(e);
+            console.log(typeof(e));
+            
+            console.log(this.dump(e));
+        }
         
         
     },
   
     
-    munge :function (cfg)
+    munge :function (cfg, isListener)
     {
         var xitems = false;
         //cfg.cls = cfg.cls || '';
@@ -156,16 +164,17 @@ Builder  = {
         
         for(var p in cfg){
             // key is not string?!?!?!!?
+          
             if (typeof(p) != 'string') {
                 continue;
             }
             
             if (typeof(cfg[p]) == 'object') { // listeners!!!
-                this.munge(cfg[p]);
+                this.munge(cfg[p], p == 'listeners');
                 continue;
             }
             // SPECIAL - PIPE
-            if (p.charAt(0) == '|') {
+            if (p.charAt(0) == '|' || isListener) {
                 
                 if (!cfg[p].length) {
                     delete cfg[p];
@@ -178,8 +187,10 @@ Builder  = {
                     /** eval:var:_this **/
                     /** eval:var:_tmp **/
                     // stupid IE can not return objects evaluated..
+                   // console.log('_tmp =(' + cfg[p] + ')');
                     eval('_tmp =(' + cfg[p] + ')');
-                    cfg[p.substr(1)] = _tmp;
+                    cfg[isListener ? p : p.substr(1)] = _tmp;
+                    
                     //if (typeof(_tmp) == 'undefined') {
                     //    alert(cfg[p]);
                    // }
@@ -212,6 +223,11 @@ Builder  = {
             }
              
         }
+        if (cfg.xtype) {
+            if (!cfg.xns || typeof(cfg.xns[cfg.xtype]) == 'undefined') {
+                throw "Invalid Xtype " + cfg.xtype + ' on ' + cfg.xtreepath;
+            }
+        }
         
         // we can overlay some event handlers here..
         cfg.listeners = cfg.listeners || {};