@qooxdoo/framework
Version:
The JS Framework for Coders
123 lines (100 loc) • 2.88 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2009 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Fabian Jakobs (fjakobs)
* Jonathan Weiß (jonathan_rass)
************************************************************************ */
qx.Class.define("qx.test.ui.virtual.performance.layer.HtmlTableCssCell",
{
extend : qx.ui.virtual.layer.Abstract,
construct : function(htmlCellProvider)
{
this.base(arguments);
this._cellProvider = htmlCellProvider;
var clazz = qx.test.ui.virtual.performance.layer.HtmlTableCssCell;
if (!clazz.__style)
{
var stylesheet =
"table.qooxdoo-table {" +
qx.bom.element.Style.compile(
{
"tableLayout" : "fixed",
"borderCollapse" : "collapse",
"margin" : "0px",
"padding" : "0px"
}) +
"} " +
"table.qooxdoo-table tr {" +
qx.bom.element.Style.compile(
{
"margin": "0px",
"padding": "0px"
}) +
"} " +
"table.qooxdoo-table tr td {" +
qx.bom.element.Style.compile(
{
"margin" : "0px",
"padding" : "0px"
}) +
"} ";
clazz.__style = qx.bom.Stylesheet.createElement(stylesheet);
}
},
/*
*****************************************************************************
MEMBERS
*****************************************************************************
*/
members :
{
_fullUpdate : function(
firstRow, firstColumn,
rowSizes, columnSizes
)
{
var html = [];
var left = 0;
var top = 0;
var row = firstRow;
var column = firstColumn;
html.push('<table class="qooxdoo-table">');
html.push('<colgroup>');
for(var y=0; y<columnSizes.length; y++) {
html.push('<col width=' + columnSizes[y] + '>');
}
html.push('</colgroup>');
for (var x=0; x<rowSizes.length; x++)
{
var left = 0;
var column = firstColumn;
var height = rowSizes[x];
html.push('<tr height=' + height + '>');
for(var y=0; y<columnSizes.length; y++)
{
var width = columnSizes[y];
html.push(
this._cellProvider.getCellHtml(
row, column,
left, top,
width, height
)
);
column++;
left += width;
}
html.push("</tr>");
top += height;
row++;
}
html.push("</table>");
this.getContentElement().setAttribute("html", html.join(""));
}
}
});