Author: abelevich
Date: 2007-07-09 09:58:07 -0400 (Mon, 09 Jul 2007)
New Revision: 1548
Modified:
branches/3.0.2/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
branches/3.0.2/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx
Log:
fix support for rendering headers and footers
Modified:
branches/3.0.2/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
===================================================================
---
branches/3.0.2/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java 2007-07-09
13:55:42 UTC (rev 1547)
+++
branches/3.0.2/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java 2007-07-09
13:58:07 UTC (rev 1548)
@@ -20,7 +20,6 @@
import org.ajax4jsf.framework.util.javascript.JSFunction;
import org.ajax4jsf.framework.util.javascript.JSFunctionDefinition;
import org.ajax4jsf.framework.util.javascript.JSReference;
-import org.ajax4jsf.framework.util.javascript.ScriptUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.richfaces.component.UIScrollableGrid;
@@ -44,9 +43,9 @@
public final String PARTIAL_UPDATE= "partialUpdate";
- private final String FOOTER_PART = "footer";
+ public final String FOOTER_PART = "footer";
- private final String HEADER_PART = "header";
+ public final String HEADER_PART = "header";
private final String COLUMN_FROZEN_TYPE = "frozen";
Modified:
branches/3.0.2/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx
===================================================================
---
branches/3.0.2/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx 2007-07-09
13:55:42 UTC (rev 1547)
+++
branches/3.0.2/sandbox/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx 2007-07-09
13:58:07 UTC (rev 1548)
@@ -11,7 +11,7 @@
baseclass="org.richfaces.renderkit.html.ScrollableGridBaseRenderer"
component="org.richfaces.component.UIScrollableGrid"
- <jsp:directive.page
import="javax.faces.component.UIComponent"/>
+ <jsp:directive.page import="javax.faces.component.UIComponent, java.util.List,
java.util.Iterator, org.richfaces.component.UIScrollableGridColumn"/>
<h:styles>
/org/richfaces/renderkit/html/css/grid.xcss
</h:styles>
@@ -26,10 +26,49 @@
<f:call name="setUpColumnsWidth"/>
+ <jsp:scriptlet>
+ <![CDATA[
+ List children = component.getChildren();
+ String hStyle, fStyle;
+ boolean footer = false;
+ boolean header = false;
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ UIComponent column = (UIComponent) iterator.next();
+ if(column instanceof UIScrollableGridColumn){
+ UIComponent hFacet = column.getFacet(HEADER_PART);
+ UIComponent fFacet = column.getFacet(FOOTER_PART);
+ if(hFacet != null){
+ if(!header)
+ header = true;
+ }
+ if(fFacet != null){
+ if(!footer)
+ footer = true;
+ }
+ }
+ }
+
+ if(header){
+ hStyle = "";
+ }else{
+ hStyle = "display: none";
+ }
+ if(footer){
+ fStyle = "";
+ }else{;
+ fStyle = "display: none";
+ }
+
+ variables.setVariable("fStyle", fStyle);
+ variables.setVariable("hStyle", hStyle);
+ ]]>
+ </jsp:scriptlet>
+
+
<div id="#{clientId}" style="width:
#{component.attributes['width']};height:
#{component.attributes['height']};" class="ClientUI_Grid
#{component.attributes['styleClass']}" >
<div id="#{clientId}:cs" class="ClientUI_Grid_HSplit" />
- <div id="#{clientId}_GridHeaderTemplate"
class="ClientUI_InlineBox" style="width:
#{component.attributes['width']};">
+ <div id="#{clientId}_GridHeaderTemplate"
class="ClientUI_InlineBox" style="#{hStyle}; width:
#{component.attributes['width']};">
<iframe id="#{clientId}:hs" class="ClientUI_HRFrm
ClientUI_Substrate" src="" scrolling="no"
frameborder="0" />
<div style="display: block; left: 0px; top: 0px; width:
#{sumWidth}px;">
<span class="ClientUI_TmplBox ClientUI_FrozenBox"
id="#{clientId}:header:FrozenBox">
@@ -77,6 +116,8 @@
</div>
</div>
+
+
<div id="#{clientId}_GridBodyTemplate"
class="ClientUI_InlineBox" style="overflow: auto; width:
#{component.attributes['width']}; height:
#{component.attributes['height']};">
<div id="#{clientId}:scb" style="position: absolute; z-index:
0;">
<div id="#{clientId}:sb" style="position: absolute;" />
@@ -122,7 +163,7 @@
</div>
</div>
- <div id="#{clientId}_GridFooterTemplate"
class="ClientUI_InlineBox" style="width:
#{component.attributes['width']};">
+ <div id="#{clientId}_GridFooterTemplate"
class="ClientUI_InlineBox" style="#{fStyle}; width:
#{component.attributes['width']};">
<iframe id="#{clientId}:fs" class="ClientUI_FRFrm
ClientUI_Substrate" src="" scrolling="no"
frameborder="0" />
<div style="display: block; width: width: #{sumWidth}px;">
<span class="ClientUI_TmplBox ClientUI_FrozenBox"
id="#{clientId}:footer:FrozenBox">