Author: abelevich
Date: 2011-03-04 08:55:31 -0500 (Fri, 04 Mar 2011)
New Revision: 22061
Modified:
branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
Log:
https://issues.jboss.org/browse/RF-10644 Collapsible sub table: border of nodata facet
rendered wrong. Reviewed by Alex Kolonitsky.
Modified:
branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
---
branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2011-03-04
13:51:48 UTC (rev 22060)
+++
branches/4.0.X/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2011-03-04
13:55:31 UTC (rev 22061)
@@ -146,35 +146,10 @@
encodeBeforeRows(writer, facesContext, dataTableBase, encodeParentTBody,
encodePartialUpdate);
if (rowCount > 0) {
- processRows(writer, facesContext, dataTableBase, new Object[]
{encodePartialUpdate, encodeParentTBody});
+ processRows(writer, facesContext, dataTableBase, new
Object[]{encodePartialUpdate, encodeParentTBody});
} else {
- int columns = getColumnsCount(dataTableBase.columns());
-
- writer.startElement(HtmlConstants.TR_ELEMENT, dataTableBase);
- String styleClass = (String)
dataTableBase.getAttributes().get("noDataStyleClass");
- styleClass = concatClasses(getNoDataClass(), styleClass);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null);
-
- writer.startElement(HtmlConstants.TD_ELEM, dataTableBase);
- writer.writeAttribute(HtmlConstants.COLSPAN_ATTRIBUTE, columns, null);
-
- String cellStyleClass = (String)
dataTableBase.getAttributes().get("noDataCellStyleClass");
- cellStyleClass = concatClasses( getNoDataCellClass(), cellStyleClass);
- writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, cellStyleClass, null);
-
- UIComponent noDataFacet = dataTableBase.getNoData();
- if (noDataFacet != null && noDataFacet.isRendered()) {
- noDataFacet.encodeAll(facesContext);
- } else {
- String noDataLabel = dataTableBase.getNoDataLabel();
- if (noDataLabel != null) {
- writer.writeText(noDataLabel, "noDataLabel");
- }
- }
-
- writer.endElement(HtmlConstants.TD_ELEM);
- writer.endElement(HtmlConstants.TR_ELEMENT);
- }
+ encodeNoDataFacetOrLabel(writer,facesContext,dataTableBase);
+ }
encodeAfterRows(writer, facesContext, dataTableBase, encodeParentTBody,
encodePartialUpdate);
@@ -193,6 +168,37 @@
dataTableBase.setRowKey(facesContext, key);
dataTableBase.restoreOrigValue(facesContext);
}
+
+ public void encodeNoDataFacetOrLabel(ResponseWriter writer, FacesContext
facesContext, UIDataTableBase dataTableBase)
+ throws IOException {
+
+ int columns = getColumnsCount(dataTableBase.columns());
+ UIComponent noDataFacet = dataTableBase.getNoData();
+ String noDataLabel = dataTableBase.getNoDataLabel();
+
+ writer.startElement(HtmlConstants.TR_ELEMENT, dataTableBase);
+ String styleClass = (String)
dataTableBase.getAttributes().get("noDataStyleClass");
+ styleClass = concatClasses(getNoDataClass(), styleClass);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null);
+
+ writer.startElement(HtmlConstants.TD_ELEM, dataTableBase);
+ writer.writeAttribute(HtmlConstants.COLSPAN_ATTRIBUTE, columns, null);
+
+ String cellStyleClass = (String)
dataTableBase.getAttributes().get("noDataCellStyleClass");
+ cellStyleClass = concatClasses(getNoDataCellClass(), cellStyleClass);
+ writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, cellStyleClass, null);
+
+ if (noDataFacet != null && noDataFacet.isRendered()) {
+ noDataFacet.encodeAll(facesContext);
+ } else if (noDataLabel != null && noDataLabel.length() > 0) {
+ writer.writeText(noDataLabel, "noDataLabel");
+ } else {
+ writer.writeAttribute(HtmlConstants.STYLE_ATTRIBUTE, "display:
none;", null);
+ }
+ writer.endElement(HtmlConstants.TD_ELEM);
+ writer.endElement(HtmlConstants.TR_ELEMENT);
+
+ }
protected void doEncodeChildren(ResponseWriter writer, FacesContext context,
UIComponent component) throws IOException {
if(component instanceof UIDataTableBase) {