X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2FContentPanel.js;h=29f2a68cebd74bc7752fcd495cc91a819e25bb9d;hb=0b69a11b1055a6d3a3fd0719bdd58b5a235de0e4;hp=a56a82e5a6ffe583cc685eed4433408e6cbc3932;hpb=600343884836a9b7c25ff610e8bc64e7d7d1298f;p=roojs1 diff --git a/Roo/ContentPanel.js b/Roo/ContentPanel.js index a56a82e5a6..29f2a68ceb 100644 --- a/Roo/ContentPanel.js +++ b/Roo/ContentPanel.js @@ -81,8 +81,12 @@ Roo.ContentPanel = function(el, config, content){ // xtype created footer. - not sure if will work as we normally have to render first.. if (this.footer && !this.footer.el && this.footer.xtype) { - - this.footer.container = this.el; + if (!this.wrapEl) { + this.wrapEl = this.el.wrap(); + } + + this.footer.container = this.wrapEl.createChild(); + this.footer = Roo.factory(this.footer, Roo); } @@ -92,6 +96,11 @@ Roo.ContentPanel = function(el, config, content){ }else{ this.resizeEl = this.el; } + // handle view.xtype + + + + this.addEvents({ /** * @event activate @@ -121,10 +130,13 @@ Roo.ContentPanel = function(el, config, content){ * @param {Roo.ContentPanel} this */ "render" : true - - + }); + + + + if(this.autoScroll){ this.resizeEl.setStyle("overflow", "auto"); } else { @@ -146,6 +158,13 @@ Roo.ContentPanel = function(el, config, content){ Roo.ContentPanel.superclass.constructor.call(this); + if (this.view && typeof(this.view.xtype) != 'undefined') { + this.view.el = this.el.appendChild(document.createElement("div")); + this.view = Roo.factory(this.view); + this.view.render && this.view.render(false, ''); + } + + this.fireEvent('render', this); }; @@ -273,7 +292,9 @@ panel.load({ return this.wrapEl || this.el; }, - adjustForComponents : function(width, height){ + adjustForComponents : function(width, height) + { + //Roo.log('adjustForComponents '); if(this.resizeEl != this.el){ width -= this.el.getFrameWidth('lr'); height -= this.el.getFrameWidth('tb'); @@ -283,6 +304,15 @@ panel.load({ height -= te.getHeight(); te.setWidth(width); } + if(this.footer){ + var te = this.footer.getEl(); + //Roo.log("footer:" + te.getHeight()); + + height -= te.getHeight(); + te.setWidth(width); + } + + if(this.adjustments){ width += this.adjustments[0]; height += this.adjustments[1]; @@ -391,22 +421,32 @@ layout.addxtype({ addxtype : function(cfg) { // add form.. if (cfg.xtype.match(/^Form$/)) { - var el = this.el.createChild(); + + var el; + //if (this.footer) { + // el = this.footer.container.insertSibling(false, 'before'); + //} else { + el = this.el.createChild(); + //} this.form = new Roo.form.Form(cfg); - if ( this.form.allItems.length) this.form.render(el.dom); + if ( this.form.allItems.length) { + this.form.render(el.dom); + } return this.form; } // should only have one of theses.. - if (['View', 'JsonView', 'DatePicker'].indexOf(cfg.xtype) > -1) { - // views.. + if ([ 'View', 'JsonView', 'DatePicker'].indexOf(cfg.xtype) > -1) { + // views.. should not be just added - used named prop 'view'' + cfg.el = this.el.appendChild(document.createElement("div")); // factory? var ret = new Roo.factory(cfg); - ret.render && ret.render(false, ''); // render blank.. + + ret.render && ret.render(false, ''); // render blank.. this.view = ret; return ret; }