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);
}
}