resources/roo.builder.js
[app.Builder.js] / resources / roo.builder.js
index d4ddb8d..2038623 100644 (file)
@@ -4,11 +4,6 @@
 // IPC: - via alert("IPC:{method}:{data}
 
 
-Roo.XComponent.on("buildcomplete", function() { 
-
-       Builder.saveHTML.defer(100); 
-} );
-
 var MODULE = { isBuilder : true };
 // BC
 var _this = MODULE;
@@ -40,12 +35,12 @@ Builder  = {
         
         
         traverseDOMTree : function(cb, currentElement, depth) {
-            if (!currentElement) {
+            if (!currentElement ) {
                 
                 return;
             }
-            console.log(currentElement);
-            if (currentElement.className.match(/roo-dynamic/)) {
+            //console.log(currentElement);
+            if (currentElement.className && currentElement.className.match(/roo-dynamic/)) {
                 return;
             }
             
@@ -59,6 +54,9 @@ Builder  = {
                 return;
             
             }
+            if (nodeName.match(/^#/)) { // comments?
+                return;
+            }
              
             
             
@@ -67,8 +65,13 @@ Builder  = {
                 return;
             }
             if (nodeName != 'BODY') {
-                
-            
+                //Roo.log(currentElement);
+                if (currentElement.hasAttribute('flexy:include')) {
+
+
+                    cb( '<flexy:include src="'+currentElement.getAttribute('flexy:include')+'"></flexy:include>');
+                    return;
+                }
             
                 var i = 0;
               // Prints the node tagName, such as <A>, <IMG>, etc
@@ -95,9 +98,7 @@ Builder  = {
             } else {
                 tagName = false;
             }
-            if (currentElement.hasAttribute('flexy:include')) {
-                cb( tagName ? "</"+tagName+">" : '');
-            }
+            
             
             // Traverse the tree
             i = 0;
@@ -283,7 +284,7 @@ Builder  = {
        }
        id = ''+ id;
        var bid = id.length ? 'builder-' + id : '';
-       console.log('{ "hover-node" :  "' + bid + '"}');
+       //console.log('{ "hover-node" :  "' + bid + '"}');
        this.lastID = id;
     },
     clearBootstrap : function()
@@ -331,11 +332,26 @@ Builder  = {
             tree.el.attr('flexy:include', tree['flexy:include']);
         }
         
-        if (!tree.items || !tree.items.length) { return; }
+        if (typeof(tree['flexy:ignore']) != 'undefined') {
+            //Roo.log("add flexy:if");
+            tree.el.attr('flexy:ignore', tree['flexy:ignore']);
+        }
+        
+        //Roo.log("Add xtype")
+        tree.el.attr('xtype', tree['|xns'] + '.' +  tree['xtype']);
+        
         
-        for (var i = 0; i < tree.items.length; i++){
-            this.applyFlexy(tree.items[i]);
+        if (tree.items && tree.items.length) { 
+        //Roo.log(tree);
+            for (var i = 0; i < tree.items.length; i++){
+                this.applyFlexy(tree.items[i]);
+            }
+        }
+        if (typeof(tree.menu) == 'object') {
+            this.applyFlexy(tree.menu);
         }
+        
+        
     }
     
      
@@ -346,4 +362,6 @@ Roo.XComponent.on('buildcomplete', function() {
     Roo.log("xcomponent built!");
     var m = Roo.XComponent.modules;
     Builder.applyFlexy(m[m.length-1].el);
+    
+       Builder.saveHTML.defer(100, Builder);
 });
\ No newline at end of file