| Newsgroups |
gmane.editors.bitflux.cvs |
| Message-ID |
<[email protected]> |
Author: chregu
Date: Thu Dec 22 07:07:33 2005
New Revision: 1433
Modified:
branches/bxe_2_0/js/table.js
Log:
colgroup should work now
Modified: branches/bxe_2_0/js/table.js
==============================================================================
--- branches/bxe_2_0/js/table.js (original)
+++ branches/bxe_2_0/js/table.js Thu Dec 22 07:07:33 2005
@@ -45,7 +45,7 @@
var prevSibling = this.previousSibling;
var pos = 1;
while(prevSibling) {
- if (prevSibling.nodeType == 1 && (prevSibling.XMLNode.vdom.bxeTabletype == "table-cell")) {
+ if (prevSibling.nodeType == 1 && (prevSibling.XMLNode.vdom.bxeTabletype == "table-cell" || prevSibling.XMLNode.vdom.bxeTabletype == "table-col")) {
var _attr = prevSibling.getAttribute("colspan");
if (_attr > 0) {
pos += parseInt( _attr);
@@ -206,7 +206,7 @@
var nextpos = 1;
while (cell) {
- if (cell.nodeType == 1 && (cell.XMLNode.vdom.bxeTabletype == "table-cell")) {
+ if (cell.nodeType == 1 && (cell.XMLNode.vdom.bxeTabletype == "table-cell" || cell.XMLNode.vdom.bxeTabletype == "table-col" )) {
if (nextpos >= pos) {
return cell;
}
@@ -688,7 +688,7 @@
nx++;
newMatrix[ny][nx][0] = 1;
//TEST
- newMatrix[ny][nx][1] = cell.parentNode.createNewTableCell();
+ newMatrix[ny][nx][1] = newMatrix[ny][1][1].parentNode.createNewTableCell();
if(colspan) {
newMatrix[ny][nx][0] = 3;
newMatrix[ny][nx][1] = false;
@@ -797,7 +797,7 @@
// find on which row position we are
for (var i = 0; i < tbody.childNodes.length; i++)
{
- if(! (tbody.childNodes[i].XMLNode && tbody.childNodes[i].XMLNode.vdom && tbody.childNodes[i].XMLNode.vdom.bxeTabletype == "table-row")) { continue; }
+ if(! (tbody.childNodes[i].XMLNode && tbody.childNodes[i].XMLNode.vdom && (tbody.childNodes[i].XMLNode.vdom.bxeTabletype == "table-row" || tbody.childNodes[i].XMLNode.vdom.bxeTabletype == "table-colgroup"))) { continue; }
ii++;
if (tbody.childNodes[i] == row)
{
@@ -990,12 +990,19 @@
return table;
}
-function bxe_table_getTableRowInfo(tbody) {
+function bxe_table_getTableRowInfo(tbody, refCell) {
// get tr field info
var ac = tbody.XMLNode.allowedChildren;
+ if (typeof refCell != "undefined" && refCell.XMLNode.vdom.bxeTabletype == "table-col") {
+
+ var celltype = "table-colgroup";
+ } else {
+ var celltype = "table-row"
+ }
+
for (var i = 0; i < ac.length; i++) {
- if (ac[i].vdom.bxeTabletype == "table-row") {
+ if (ac[i].vdom.bxeTabletype == celltype) {
return ac[i];
}
}
@@ -1013,11 +1020,15 @@
tbody.removeChild(tbody.childNodes[0]);
}
- var rowInfo = bxe_table_getTableRowInfo(tbody);
-
+ var firstRowInfo = bxe_table_getTableRowInfo(tbody,matrix[1][1][1]);
+ var rowInfo = bxe_table_getTableRowInfo(tbody);
//rebuild all rows
for(var r = 1; r <= matrix[0][0][0]; r++) {
- var rowNode = bxe_config.doc.createElementNS(rowInfo.namespaceURI, rowInfo.localName);
+ if (r == 1) {
+ var rowNode = bxe_config.doc.createElementNS(firstRowInfo.namespaceURI, firstRowInfo.localName);
+ } else {
+ var rowNode = bxe_config.doc.createElementNS(rowInfo.namespaceURI, rowInfo.localName);
+ }
//BX_node_insertID(rowNode);
tbody.appendChild(rowNode);
for(var c = 1; c <= matrix[0][0][1]; c++) {
@@ -1044,14 +1055,14 @@
var firstRow = null;
for(var r = 0; r < table_node.childNodes.length; r++) {
row = table_node.childNodes[r];
- if(!(row.XMLNode && row.XMLNode.vdom && row.XMLNode.vdom.bxeTabletype == "table-row")) { continue; }
+ if(!(row.XMLNode && row.XMLNode.vdom && ( row.XMLNode.vdom.bxeTabletype == "table-row" ||row.XMLNode.vdom.bxeTabletype == "table-colgroup" ))) { continue; }
if (!firstRow) { firstRow = row;}
rows += bxe_table_getSpanCount(row.getAttribute("rowspan"));
}
var nodeName = "";
for(var r = 0; r < firstRow.childNodes.length; r++) {
cell = firstRow.childNodes[r];
- if(!(cell.XMLNode && cell.XMLNode.vdom && cell.XMLNode.vdom.bxeTabletype == "table-cell")) { continue; }
+ if(!(cell.XMLNode && cell.XMLNode.vdom && (cell.XMLNode.vdom.bxeTabletype == "table-cell" || cell.XMLNode.vdom.bxeTabletype == "table-col"))) { continue; }
cols += bxe_table_getSpanCount(cell.getAttribute("colspan"));
}
@@ -1085,11 +1096,10 @@
var tr = 0; //matrix coordinates
var tc = 0;
//loop all real existing table rows
- debug ("hhh\n");
for(var r = 0; r < tbody.childNodes.length; r++) {
row = tbody.childNodes[r];
debug ("hhh " + tr +"\n");
- if(! (row.XMLNode && row.XMLNode.vdom && row.XMLNode.vdom.bxeTabletype == "table-row")) { continue; } //caution: may be there are text nodes (CRLF or whitespace)
+ if(! (row.XMLNode && row.XMLNode.vdom && (row.XMLNode.vdom.bxeTabletype == "table-row" || row.XMLNode.vdom.bxeTabletype == "table-colgroup"))) { continue; } //caution: may be there are text nodes (CRLF or whitespace)
tr++;
tc = 0;
@@ -1097,7 +1107,7 @@
for(var c = 0; c < row.childNodes.length; c++) {
cell = row.childNodes[c];
- if(! (cell.XMLNode && cell.XMLNode.vdom && cell.XMLNode.vdom.bxeTabletype == "table-cell")) {continue;} //caution: may be there are text nodes (CRLF or whitespace)
+ if(! (cell.XMLNode && cell.XMLNode.vdom && (cell.XMLNode.vdom.bxeTabletype == "table-cell" || cell.XMLNode.vdom.bxeTabletype == "table-col"))) {continue;} //caution: may be there are text nodes (CRLF or whitespace)
tc++;
//find the homogenious matrix pos
--
Bx-editor-cvs mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bx-editor-cvs