el = el || false;
var hp = this.parent ? 1 : 0;
- Roo.log(this);
+ Roo.debug && Roo.log(this);
+
+ var tree = this._tree ? this._tree() : this.tree();
+
if (!el && typeof(this.parent) == 'string' && this.parent.substring(0,1) == '#') {
// if parent is a '#.....' string, then let's use that..
var ename = this.parent.substr(1);
this.parent = false;
- Roo.log(ename);
+ Roo.debug && Roo.log(ename);
switch (ename) {
- case 'bootstrap-body' :
+ case 'bootstrap-body':
+ if (typeof(tree.el) != 'undefined' && tree.el == document.body) {
+ // this is the BorderLayout standard?
+ this.parent = { el : true };
+ break;
+ }
+
if (typeof(Roo.bootstrap.Body) != 'undefined') {
this.parent = { el : new Roo.bootstrap.Body() };
- Roo.log("setting el to doc body");
+ Roo.debug && Roo.log("setting el to doc body");
} else {
throw "Container is bootstrap body, but Roo.bootstrap.Body is not defined";
if (!el && !this.parent) {
- Roo.log("Warning - element can not be found :#" + ename );
+ Roo.debug && Roo.log("Warning - element can not be found :#" + ename );
return;
}
}
- Roo.log("EL:");Roo.log(el);
- Roo.log("this.parent.el:");Roo.log(this.parent.el);
+ Roo.debug && Roo.log("EL:");
+ Roo.debug && Roo.log(el);
+ Roo.debug && Roo.log("this.parent.el:");
+ Roo.debug && Roo.log(this.parent.el);
- var tree = this._tree ? this._tree() : this.tree();
// altertive root elements ??? - we need a better way to indicate these.
- var is_alt = (typeof(Roo.bootstrap) != 'undefined' && tree.xns == Roo.bootstrap) ||
- (typeof(Roo.mailer) != 'undefined' && tree.xns == Roo.mailer) ;
+ var is_alt = Roo.XComponent.is_alt ||
+ (typeof(tree.el) != 'undefined' && tree.el == document.body) ||
+ (typeof(Roo.bootstrap) != 'undefined' && tree.xns == Roo.bootstrap) ||
+ (typeof(Roo.mailer) != 'undefined' && tree.xns == Roo.mailer) ;
+
+
if (!this.parent && is_alt) {
//el = Roo.get(document.body);
if (!this.parent) {
- Roo.log("no parent - creating one");
+ Roo.debug && Roo.log("no parent - creating one");
el = el ? Roo.get(el) : false;
minTabWidth: 140
}
})
- }
+ };
}
if (!this.parent.el) {
// The 'tree' method is '_tree now'
tree.region = tree.region || this.region;
-
+ var is_body = false;
if (this.parent.el === true) {
// bootstrap... - body..
this.parent.el = Roo.factory(tree);
+ is_body = true;
}
- this.el = this.parent.el.addxtype(tree);
+ this.el = this.parent.el.addxtype(tree, undefined, is_body);
this.fireEvent('built', this);
this.panel = this.el;
elmodules : [],
/**
+ * @property is_alt
+ * Is an alternative Root - normally used by bootstrap or other systems,
+ * where the top element in the tree can wrap 'body'
+ * @type {boolean} (default false)
+ */
+
+ is_alt : false,
+ /**
* @property build_from_html
* Build elements from html - used by bootstrap HTML stuff
* - this is cleared after build is completed
- * @type {boolean} true (default false)
+ * @type {boolean} (default false)
*/
build_from_html : false,
-
/**
* Register components to be built later.
*
try {
obj.parent = this.toObject(opar);
} catch(e) {
- Roo.log("parent:toObject failed: " + e.toString());
+ Roo.debug && Roo.log("parent:toObject failed: " + e.toString());
return;
}
return;
}
if (obj.parent.constructor != Roo.XComponent) {
- Roo.log("Warning : Object Parent is not instance of XComponent:" + obj.name)
+ Roo.debug && Roo.log("Warning : Object Parent is not instance of XComponent:" + obj.name)
}
if (!obj.parent.modules) {
obj.parent.modules = new Roo.util.MixedCollection(false,