/*!
- * Ext JS Library 3.0.0
- * Copyright(c) 2006-2009 Ext JS, LLC
+ * Ext JS Library 3.1.1
+ * Copyright(c) 2006-2010 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
*/
// private\r
monitorResize:false,\r
\r
+ type: 'table',\r
+\r
+ targetCls: 'x-table-layout-ct',\r
+\r
/**\r
* @cfg {Object} tableAttrs\r
* <p>An object containing properties which are added to the {@link Ext.DomHelper DomHelper} specification\r
layout: 'table',\r
layoutConfig: {\r
tableAttrs: {\r
- style: {\r
- width: '100%'\r
- }\r
+ style: {\r
+ width: '100%'\r
+ }\r
},\r
columns: 3\r
}\r
}</code></pre>\r
*/\r
tableAttrs:null,\r
- \r
+\r
// private\r
setContainer : function(ct){\r
Ext.layout.TableLayout.superclass.setContainer.call(this, ct);\r
this.currentColumn = 0;\r
this.cells = [];\r
},\r
-\r
+ \r
// private\r
onLayout : function(ct, target){\r
var cs = ct.items.items, len = cs.length, c, i;\r
this.getRow(curRow).appendChild(td);\r
return td;\r
},\r
- \r
+\r
// private\r
getNextNonSpan: function(colIndex, rowIndex){\r
var cols = this.columns;\r
\r
// private\r
renderItem : function(c, position, target){\r
+ // Ensure we have our inner table to get cells to render into.\r
+ if(!this.table){\r
+ this.table = target.createChild(\r
+ Ext.apply({tag:'table', cls:'x-table-layout', cellspacing: 0, cn: {tag: 'tbody'}}, this.tableAttrs), null, true);\r
+ }\r
if(c && !c.rendered){\r
c.render(this.getNextCell(c));\r
- if(this.extraCls){\r
- var t = c.getPositionEl ? c.getPositionEl() : c;\r
- t.addClass(this.extraCls);\r
- }\r
+ this.configureItem(c, position);\r
+ }else if(c && !this.isValidParent(c, target)){\r
+ var container = this.getNextCell(c);\r
+ container.insertBefore(c.getPositionEl().dom, null);\r
+ c.container = Ext.get(container);\r
+ this.configureItem(c, position);\r
}\r
},\r
\r
// private\r
isValidParent : function(c, target){\r
- return true;\r
+ return c.getPositionEl().up('table', 5).dom.parentNode === (target.dom || target);\r
}\r
\r
/**\r