builder.html.js
[app.Builder.js] / builder.html.js
index c49432e..d88aa41 100644 (file)
@@ -5,6 +5,7 @@ Builder  = {
     
     render : function(data)
     {
+         
         this.tree = data;
         
         if (!Builder.click) {
@@ -41,7 +42,12 @@ Builder  = {
             this.dialogroot = false;
         }
         if (this.layoutbase) {
-            this.layoutbase.remove();
+            //console.log(Builder.dump(this.layoutbase.el));
+            try {
+                this.layoutbase.remove('center', this.layoutbase.getRegion('center'));
+            } catch( e) {
+                // reload!!?
+            }
             this.layoutbase= false;
         }
          
@@ -93,19 +99,21 @@ Builder  = {
         // force center region..
         cfg.region = 'center';
         cfg.background = false;
-        this.layoutbase = new Ext.BorderLayout(document.body, {
-          
-             center: {
-                titlebar: false,
-                autoScroll:false,
-                closeOnTab: true,
-                tabPosition: 'top',
-                //resizeTabs: true,
-                alwaysShowTabs: true,
-                minTabWidth: 140
-            }
-        });
-         
+        if (!this.layoutbase) {
+                
+            this.layoutbase = new Ext.BorderLayout(document.body, {
+              
+                 center: {
+                    titlebar: false,
+                    autoScroll:false,
+                    closeOnTab: true,
+                    tabPosition: 'top',
+                    //resizeTabs: true,
+                    alwaysShowTabs: true,
+                    minTabWidth: 140
+                }
+            });
+        }
         this.layoutbase.addxtype(  cfg ); 
         
         
@@ -181,7 +189,7 @@ Builder  = {
         // we can overlay some event handlers here..
         cfg.listeners = cfg.listeners || {};
        
-        console.log('xtype'  + xtype)
+        //console.log('xtype'  + xtype)
         switch(xtype) {
             case 'Roo.LayoutDialog':
                 cfg.listeners.resize = function(dlg, w,h)
@@ -207,10 +215,13 @@ Builder  = {
             
             var xi = xitems[i];
             if (typeof(xi['*prop']) != 'undefined') {
+                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);
                     pr = pr.replace(/\[\]$/, '');
                     cfg[pr] = cfg[pr]  || [];
                     cfg[pr].push(xi);
@@ -221,6 +232,7 @@ Builder  = {
                 if (xi.xtype && xi.xtype  == 'Array') {
                     cfg[pr] = xi.items;
                 } else {
+                    console.log('setting property:' + pr);
                     cfg[pr] = xi;
                 }
                 
@@ -256,21 +268,33 @@ Builder  = {
     dump : function (arr,level) {
         var dumped_text = "";
         if(!level) level = 0;
-        
+        if (level >  3) {
+            return '... TO DEEP ...';
+        }
         //The padding given at the beginning of the line.
         var level_padding = "";
         for(var j=0;j<level+1;j++) level_padding += "    ";
         
         if(typeof(arr) == 'object') { //Array/Hashes/Objects 
             for(var item in arr) {
-                var value = arr[item];
                 
+                var value = arr[item];
+                if (item == 'xns') {
+                    continue;
+                }
+                if(typeof(value) == 'function') { //If it is an array,
+                    // fake dump...
+                    dumped_text += level_padding + "'" + item + "' : function() { ... },\n";
+                    continue;
+                }
                 if(typeof(value) == 'object') { //If it is an array,
-                    dumped_text += level_padding + "'" + item + "' ...\n";
+                    dumped_text += level_padding + "'" + item + "': {\n";
                     dumped_text += this.dump(value,level+1);
-                } else {
-                    dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
+                    dumped_text += level_padding + "}\n";
+                    continue;
                 }
+                dumped_text += level_padding + "'" + item + "' : \"" + value + "\"\n";
+                
             }
         } else { //Stings/Chars/Numbers etc.
             dumped_text = "===>"+arr+"<===("+typeof(arr)+")";