[richfaces-svn-commits] JBoss Rich Faces SVN: r5764 - in trunk/ui/dataTable/src/main/java/org/richfaces/renderkit: html and 1 other directory.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Feb 1 09:06:32 EST 2008


Author: akushunin
Date: 2008-02-01 09:06:31 -0500 (Fri, 01 Feb 2008)
New Revision: 5764

Modified:
   trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
   trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java
Log:
http://jira.jboss.com/jira/browse/RF-1940

Modified: trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java	2008-02-01 13:53:30 UTC (rev 5763)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java	2008-02-01 14:06:31 UTC (rev 5764)
@@ -85,6 +85,8 @@
 		ResponseWriter writer = context.getResponseWriter();
 		UIComponent header = table.getHeader();
 		Iterator headers = columnFacets(table,"header");
+		Iterator<UIComponent> colums = table.columns();
+		int colCount = calculateRowColumns(table.columns());
 		
 		
 		if (header != null ||headers.hasNext()) {
@@ -104,9 +106,9 @@
 				encodeStyleClass(writer, null,
 						"dr-table-subheader rich-table-subheader", null,
 						headerClass);
-					encodeHeaderFacets(context, writer, headers,
+					encodeHeaderFacets(context, writer, colums,
 						"dr-table-subheadercell rich-table-subheadercell",
-						headerClass, "header", "th");
+						headerClass, "header", "th", colCount);
 				
 				writer.endElement("tr");
 			}
@@ -132,10 +134,20 @@
 	
 	protected void encodeHeaderFacets(FacesContext context,
 			ResponseWriter writer, Iterator headers, String skinCellClass,
-			String headerClass, String facetName, String element)
+			String headerClass, String facetName, String element, int colCount)
 			throws IOException {
+			int t_colCount = 0; 
 		while (headers.hasNext()) {
 			UIComponent column = (UIComponent) headers.next();
+			if((Integer)column.getAttributes().get("colspan")!=null){
+				t_colCount = t_colCount + ((Integer)column.getAttributes().get("colspan")).intValue();
+			}else{
+				t_colCount++;
+			}			
+			if(t_colCount>colCount){
+				break;
+			}
+			
 			String classAttribute = facetName + "Class";
 			String columnHeaderClass = (String) column.getAttributes().get(
 					classAttribute);
@@ -143,7 +155,7 @@
 			writer.startElement(element, column);
 			encodeStyleClass(writer, null, skinCellClass, headerClass,
 					columnHeaderClass);
-			writer.writeAttribute("scope", "col", null);
+			writer.writeAttribute("scope", "col", null);			
 			getUtils().encodeAttribute(context, column, "colspan");
 
 			if (column instanceof org.richfaces.component.UIColumn) {
@@ -183,8 +195,9 @@
 				renderChild(context, facet);
 			}
 			
+			writer.endElement(element);
 			
-			writer.endElement(element);
+
 		}
 	}
 
@@ -193,6 +206,8 @@
 		ResponseWriter writer = context.getResponseWriter();
 		UIComponent footer = table.getFooter();
 		Iterator footers = columnFacets(table,"footer");
+		Iterator tableColumns = table.columns();//columnFacets(table,"footer");
+		int colCount = calculateRowColumns(table.columns());
 		if (footer != null || footers.hasNext()) {
 			writer.startElement("tfoot", table);
 			String footerClass = (String) table.getAttributes().get(
@@ -204,9 +219,9 @@
 						"dr-table-subfooter rich-table-subfooter", null,
 						footerClass);
 		
-				encodeHeaderFacets(context, writer, footers,
+				encodeHeaderFacets(context, writer, tableColumns,
 						"dr-table-subfootercell rich-table-subfootercell",
-						footerClass, "footer", "td");
+						footerClass, "footer", "td",colCount);
 				
 				writer.endElement("tr");
 			}

Modified: trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java	2008-02-01 13:53:30 UTC (rev 5763)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/SubTableRenderer.java	2008-02-01 14:06:31 UTC (rev 5764)
@@ -60,14 +60,16 @@
 	 */
 	private void encodeHeaderRow(ResponseWriter writer, FacesContext context, UIComponent component,String facetName) throws IOException {
 		UIDataTable dataTable = (UIDataTable) component;
+		Iterator<UIComponent> columns = dataTable.columns();//columnFacets(dataTable,facetName);
 		Iterator headers = columnFacets(dataTable,facetName);
+		int colCount = calculateRowColumns(dataTable.columns());
 		String headerClass = (String) component.getAttributes().get(
 				facetName+"Class");
 		if (headers.hasNext()) {
 			writer.startElement(HTML.TR_ELEMENT, dataTable);
 			encodeStyleClass(writer, null, "dr-subtable-"+facetName+" rich-subtable-"+facetName, null, headerClass);	
-			encodeHeaderFacets(context, writer, headers, "dr-subtable-"+facetName+"cell rich-subtable-"+facetName+"cell", headerClass,
-					facetName, "td");
+			encodeHeaderFacets(context, writer, columns, "dr-subtable-"+facetName+"cell rich-subtable-"+facetName+"cell", headerClass,
+					facetName, "td",colCount);
 			writer.endElement(HTML.TR_ELEMENT);
 		}
 	}




More information about the richfaces-svn-commits mailing list