X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=resources%2Froo.builder.js;h=59ffc80b0638199f236f2f3ceb6dc2831cc04763;hb=e857bf502efa8e8b2a3962c06fc5130b37c4d52b;hp=ba25fb07edcad3bc45495340318bdc9980c14f22;hpb=1a215cd32653363e65fb58f620b17116c37c792c;p=app.Builder.js
diff --git a/resources/roo.builder.js b/resources/roo.builder.js
index ba25fb07e..59ffc80b0 100644
--- a/resources/roo.builder.js
+++ b/resources/roo.builder.js
@@ -17,39 +17,46 @@ Builder = {
- saveHTML : function( )
+ saveHTML : function( )
{
- print("TRAVERSE DOM?");
+ //print("TRAVERSE DOM?");
var dom = document.body;
- print(dom);
+ //print(dom);
var ret = '';
//Roo.select('body > div',true).each(function(el) {
+ // if the tree is not ready yet?
+
+
this.traverseDOMTree(function(s) { ret+=s; }, dom, 1);
- alert("IPC:SAVEHTML:" + dom);
+ alert("IPC:SAVEHTML:" + ret);
return ret;
},
traverseDOMTree : function(cb, currentElement, depth) {
- if (!currentElement) {
+ if (!currentElement ) {
return;
}
- if (currentElement.class_name.match(/roo-dynamic/)) {
+ //console.log(currentElement);
+ if (currentElement.className && currentElement.className.match(/roo-dynamic/)) {
return;
}
//Roo.log(currentElement);
var j;
- var nodeName = currentElement.node_name;
- var tagName = currentElement.tag_name;
+ var nodeName = currentElement.nodeName;
+ var tagName = currentElement.tagName;
if (nodeName == '#text') {
- cb(currentElement.node_value);
+ cb(currentElement.nodeValue);
return;
}
+ if (nodeName.match(/^#/)) { // comments?
+ return;
+ }
@@ -58,8 +65,13 @@ Builder = {
return;
}
if (nodeName != 'BODY') {
-
-
+ //Roo.log(currentElement);
+ if (currentElement.hasAttribute('flexy:include')) {
+
+
+ cb( '');
+ return;
+ }
var i = 0;
// Prints the node tagName, such as , , etc
@@ -78,7 +90,7 @@ Builder = {
}
- cb("<"+currentElement.tag_name+ ( attr.length ? (' ' + attr.join(' ') ) : '') + ">");
+ cb("<"+currentElement.tagName+ ( attr.length ? (' ' + attr.join(' ') ) : '') + ">");
}
else {
cb("[unknown tag]");
@@ -86,17 +98,19 @@ Builder = {
} else {
tagName = false;
}
+
+
// Traverse the tree
i = 0;
- var currentElementChild = currentElement.child_nodes.item(i);
+ var currentElementChild = currentElement.childNodes.item(i);
var allText = true;
while (currentElementChild) {
// Formatting code (indent the tree so it looks nice on the screen)
- if (currentElementChild.node_name == '#text') {
- cb(currentElementChild.node_value);
+ if (currentElementChild.nodeName == '#text') {
+ cb(currentElementChild.nodeValue);
i++;
- currentElementChild=currentElement.child_nodes.item(i);
+ currentElementChild=currentElement.childNodes.item(i);
continue;
}
allText = false;
@@ -110,7 +124,7 @@ Builder = {
// Recursively traverse the tree structure of the child node
this.traverseDOMTree(cb, currentElementChild, depth+1);
i++;
- currentElementChild=currentElement.child_nodes.item(i);
+ currentElementChild=currentElement.childNodes.item(i);
}
if (!allText) {
// The remaining code is mostly for formatting the tree
@@ -270,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()
@@ -313,12 +327,30 @@ Builder = {
tree.el.attr('xtype', tree['xtype-bootstrap']);
}
+ if (typeof(tree['flexy:include']) != 'undefined') {
+ //Roo.log("add flexy:if");
+ tree.el.attr('flexy:include', tree['flexy:include']);
+ }
+
+ 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']);
- if (!tree.items || !tree.items.length) { return; }
- for (var i = 0; i < tree.items.length; i++){
- this.applyFlexy(tree.items[i]);
+ 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);
+ }
+
}
@@ -327,6 +359,8 @@ Builder = {
Roo.onReady(function() { Builder.clearBootstrap(); });
Roo.XComponent.on('buildcomplete', function() {
Roo.log("xcomponent built!");
+ var m = Roo.XComponent.modules;
+ Builder.applyFlexy(m[m.length-1].el);
- Builder.applyFlexy(Roo.XComponent.modules[0].el);
+ Builder.saveHTML.defer(100, Builder);
});
\ No newline at end of file