resources/RooUsage.txt
[app.Builder.js] / resources / roo.builder.js
index 82e711c..a53f114 100644 (file)
@@ -78,15 +78,17 @@ Builder  = {
                 if (tagName) {
                     var attr = [];
                     for(i = 0; i < currentElement.attributes.length;i++) {
-                        var aname = currentElement.attributes.item(i).name;
-                        if (aname=='id') {
+                        var attre = currentElement.attributes.item(i);
+                        var aname = attre.name;
+                        var aval = attre.value || '';
+                        if (aname=='id' && aval.match(/^roo\-/)) { // only roo -elements hide..
                             aname= 'xbuilderid';
                         }
-                        // skip
-                        if (currentElement.attributes.item(i).value == 'builderel') {
+                        // skip -- component created by the builder?
+                        if (aval == 'builderel') { 
                             return;
                         }
-                        attr.push(aname + '="' + currentElement.attributes.item(i).value + '"' );
+                        attr.push(aname + '="' + aval + '"' );  //?? escaping attributes?
                     }
                     
                     
@@ -314,6 +316,9 @@ Builder  = {
     
     applyFlexy: function(tree)
     {
+        if (!tree.el) {
+            return;
+        }
         if (typeof(tree['flexy:foreach']) != 'undefined') {
             //Roo.log("add flexy:foreach");
             tree.el.attr('flexy:foreach', tree['flexy:foreach']);
@@ -331,13 +336,28 @@ Builder  = {
             //Roo.log("add flexy:if");
             tree.el.attr('flexy:include', tree['flexy:include']);
         }
-        //Roo.log("Add xtype")
+        
+        if (typeof(tree['flexy:ignore']) != 'undefined') {
+            //Roo.log("add flexy:if");
+            tree.el.attr('flexy:ignore', tree['flexy:ignore']);
+        }
+        
         tree.el.attr('xtype', tree['|xns'] + '.' +  tree['xtype']);
-        if (!tree.items || !tree.items.length) { return; }
         //Roo.log(tree);
-        for (var i = 0; i < tree.items.length; i++){
-            this.applyFlexy(tree.items[i]);
+        //Roo.log("Add xtype")
+        
+        
+        
+        if (tree.items && tree.items.length > 0) { 
+        //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);
         }
+        
     }