Builder/Provider/GtkUsage.txt
[app.Builder.js] / builder.html.js
index 183711e..875e9e9 100644 (file)
@@ -1,16 +1,24 @@
 //<script type="text/javascript">
 
+var MODULE = { isBuilder : true };
+// BC
+var _this = MODULE;
 
+// the apprenderer.
 Builder  = {
     
     render : function(data)
     {
-         
-        this.tree = data;
+        // for debugging 
+         //console.log(data);        return;
+        
         
+        this.tree = data;
+        MODULE = { isBuilder : true }; 
+        _this = MODULE;
         if (!Builder.click) {
             Builder.click= Roo.get(document.body).on('click', this.onclick, this);
-         
         }
         
         this.redraw(false);
@@ -82,7 +90,8 @@ Builder  = {
         
         
         this.munge(cfg);
-        console.log(this.dump(cfg)); 
+        this.cfg = cfg;
+        //console.log(this.dump(cfg)); 
         // we draw either a dialog or a tab..
         
         if (cfg.xtype == 'LayoutDialog') {
@@ -97,9 +106,10 @@ Builder  = {
                 id : cfg.id
             });
             
-            this.dialog = new Roo[cfg.xtype](this.dialogroot, cfg);
+            
+            MODULE.dialog = new Roo[cfg.xtype](this.dialogroot, cfg);
             //this.dialog.el.on('click', this.panelClick, this);
-            this.dialog.show();
+            MODULE.dialog.show();
             return;
             
         }
@@ -129,6 +139,7 @@ Builder  = {
         }
         try {
             console.log("ADDING CFG");    
+            console.log(cfg)
             this.layoutbase.addxtype(  cfg ); 
         } catch (e) {
             console.log("GOT ERROR?");    
@@ -142,7 +153,7 @@ Builder  = {
     },
   
     
-    munge :function (cfg)
+    munge :function (cfg, isListener)
     {
         var xitems = false;
         //cfg.cls = cfg.cls || '';
@@ -150,6 +161,7 @@ Builder  = {
         if (!cfg.id) {
             this.dump(cfg);
         }
+        
         //console.log(cfg.xtype + ': ' + cfg.id);
         
         if (cfg.items) {
@@ -164,30 +176,36 @@ 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];
                     continue;
                 }
+                var pp = p.charAt(0) == '|'  ? p.substring(1) : p;
                 try {
+                    
+                    
                     var _tmp = false;
                     
-                    var _this = this.renderObj; /// fake '_this' object..
+                    /** eval:var:MOUDULE **/
                     /** 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[pp] = _tmp;
+                    
                     //if (typeof(_tmp) == 'undefined') {
                     //    alert(cfg[p]);
                    // }
@@ -195,7 +213,10 @@ Builder  = {
                 } catch(e) {  
                     console.log('Error evaluating: '  + cfg[p] + "\r\n" + JSON.stringify(e)); 
                 };
-                delete cfg[p];
+                if (pp != p) {
+                    delete cfg[p];
+                }
+                
                     
                 
                 continue;
@@ -222,12 +243,14 @@ Builder  = {
         }
         if (cfg.xtype) {
             if (!cfg.xns || typeof(cfg.xns[cfg.xtype]) == 'undefined') {
-                throw "Invalid Xtype " + this.xtreepath;
+                throw "Invalid Xtype " + cfg.xtype + ' on ' + cfg.xtreepath;
             }
         }
-        
+        if (!isListener) {
+            cfg.listeners = cfg.listeners || {};
+        }
         // we can overlay some event handlers here..
-        cfg.listeners = cfg.listeners || {};
+        
        
         //console.log('xtype'  + xtype)
         switch(xtype) {
@@ -246,6 +269,7 @@ Builder  = {
         
         // now for all the children.. (items)
         if (xitems === false) {
+            
             return;
         }
         cfg.items = [];
@@ -255,13 +279,13 @@ Builder  = {
             
             var xi = xitems[i];
             if (typeof(xi['*prop']) != 'undefined') {
-                console.log('adding prop:' + xi['*prop']);
+                //console.log('adding prop:' + xi['*prop']);
                 
                 var pr = xi['*prop'];
                 this.munge(xi);
                 // if prop is an array - then it's items are really the value..
                 if (pr.match(/\[\]$/)) {
-                    console.log('adding array?:' + pr);
+                    //console.log('adding array?:' + pr);
                     pr = pr.replace(/\[\]$/, '');
                     cfg[pr] = cfg[pr]  || [];
                     cfg[pr].push(xi);
@@ -272,7 +296,7 @@ Builder  = {
                 if (xi.xtype && xi.xtype  == 'Array') {
                     cfg[pr] = xi.items;
                 } else {
-                    console.log('setting property:' + pr);
+                    //console.log('setting property:' + pr);
                     cfg[pr] = xi;
                 }
                 
@@ -286,7 +310,7 @@ Builder  = {
         if (cfg.items.length == 0) {
             delete cfg.items;
         }
-        
+        console.log(cfg);
         
         
     },
@@ -353,7 +377,7 @@ Builder  = {
         }
         // needs fixing..
         if (ftg.dom.className.match(/[0-9]+/)) {
-            console.log(ftg.dom.className);
+            //console.log(ftg.dom.className);
             var cmat = ftg.dom.className.match(/x-grid-hd-builder-(form-gen-[0-9:]+)/);
             if (cmat) {
                 this[method]( cmat[1] );