Author: abelevich
Date: 2010-08-18 09:07:13 -0400 (Wed, 18 Aug 2010)
New Revision: 18755
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/RowHolderBase.java
Log:
https://jira.jboss.org/browse/RF-9085
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java 2010-08-18
12:52:55 UTC (rev 18754)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java 2010-08-18
13:07:13 UTC (rev 18755)
@@ -72,11 +72,22 @@
protected void encodeRows(FacesContext facesContext, RowHolderBase rowHolder) {
rowHolder.getRow().walk(facesContext, this, rowHolder);
}
+
+ public void encodeFakeRow(FacesContext facesContext, RowHolderBase rowHolder) throws
IOException {
+ }
public void processRows(ResponseWriter writer, FacesContext facesContext, UIComponent
component, Object[] options) throws IOException {
RowHolderBase rowHolder = createRowHolder(facesContext, component, options);
encodeRows(facesContext, rowHolder);
- doCleanup(facesContext, rowHolder);
+ if(!rowHolder.hasWalkedOverRows()) {
+ try {
+ encodeFakeRow(facesContext, rowHolder);
+ } catch (IOException e){
+ throw new FacesException(e);
+ }
+ } else {
+ doCleanup(facesContext, rowHolder);
+ }
}
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java 2010-08-18
12:52:55 UTC (rev 18754)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/AbstractTableBaseRenderer.java 2010-08-18
13:07:13 UTC (rev 18755)
@@ -244,4 +244,15 @@
}
return count;
}
+
+ @Override
+ public void encodeFakeRow(FacesContext facesContext, RowHolderBase rowHolder) throws
IOException {
+ UIComponent component = (UIComponent)rowHolder.getRow();
+ ResponseWriter writer = facesContext.getResponseWriter();
+ writer.startElement(HTML.TR_ELEMENT, component);
+ writer.writeAttribute(HTML.STYLE_ATTRIBUTE, "display:none", null);
+ writer.startElement(HTML.TD_ELEM, component);
+ writer.endElement(HTML.TD_ELEM);
+ writer.endElement(HTML.TR_ELEMENT);
+ }
}
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java 2010-08-18
12:52:55 UTC (rev 18754)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java 2010-08-18
13:07:13 UTC (rev 18755)
@@ -268,6 +268,7 @@
}
}
+
@Override
protected void doCleanup(FacesContext context, RowHolderBase rowHolder) throws
IOException {
ResponseWriter writer = context.getResponseWriter();
@@ -304,4 +305,15 @@
holder.nextCell();
return DataVisitResult.CONTINUE;
}
+
+ @Override
+ public void encodeFakeRow(FacesContext facesContext, RowHolderBase rowHolder) throws
IOException {
+ UIComponent component = (UIComponent) rowHolder.getRow();
+ ResponseWriter writer = facesContext.getResponseWriter();
+ writer.startElement(HTML.TR_ELEMENT, component);
+ writer.writeAttribute(HTML.STYLE_ATTRIBUTE, "display:none", null);
+ writer.startElement(HTML.TD_ELEM, component);
+ writer.endElement(HTML.TD_ELEM);
+ writer.endElement(HTML.TR_ELEMENT);
+ }
}
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/RowHolderBase.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/RowHolderBase.java 2010-08-18
12:52:55 UTC (rev 18754)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/RowHolderBase.java 2010-08-18
13:07:13 UTC (rev 18755)
@@ -78,4 +78,7 @@
return processCell++;
}
+ public boolean hasWalkedOverRows() {
+ return currentRow != 0;
+ }
}