@qooxdoo/framework
Version:
The JS Framework for Coders
109 lines (90 loc) • 2.8 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(htmlCellProvider) {
super();
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(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(""));
}
}
});