r1433 - branches/bxe_2_0/js

[email protected]
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.