[richfaces-svn-commits] JBoss Rich Faces SVN: r18755 - trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Aug 18 09:07:14 EDT 2010


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



More information about the richfaces-svn-commits mailing list