[richfaces-svn-commits] JBoss Rich Faces SVN: r724 - trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu May 10 14:22:29 EDT 2007


Author: abelevich
Date: 2007-05-10 14:22:29 -0400 (Thu, 10 May 2007)
New Revision: 724

Modified:
   trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
Log:


Modified: trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java	2007-05-10 18:22:20 UTC (rev 723)
+++ trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java	2007-05-10 18:22:29 UTC (rev 724)
@@ -1,17 +1,21 @@
 package org.richfaces.renderkit.html;
 
 import java.io.IOException;
+import java.util.Map;
 
 import javax.faces.component.UIComponent;
+import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 
 import org.ajax4jsf.ajax.repeat.DataVisitor;
 import org.ajax4jsf.framework.ajax.AjaxContext;
+import org.ajax4jsf.framework.renderer.AjaxRendererUtils;
 import org.ajax4jsf.framework.renderer.ComponentVariables;
 import org.ajax4jsf.framework.renderer.ComponentsVariableResolver;
 import org.ajax4jsf.framework.renderer.RendererBase;
 import org.ajax4jsf.framework.renderer.RendererUtils.HTML;
+import org.ajax4jsf.framework.util.javascript.JSFunction;
 import org.richfaces.component.UIScrollableGrid;
 import org.richfaces.component.UIScrollableGridColumn;
 import org.richfaces.renderkit.CompositeRenderer;
@@ -31,6 +35,8 @@
 	
 	private final RendererBase cellTemplate = TemplateLoader.loadTemplate("org.richfaces.renderkit.html.ScrollableGridCellRenderer");
 	
+
+	
 	private final ColumnVisitor headerRenderer = new ColumnVisitor(){
 
 		public void visit(FacesContext context, UIScrollableGridColumn column, 
@@ -110,6 +116,10 @@
 		
 		final GridRendererState state = GridRendererState.getRendererState(context);
 		
+		ComponentVariables variables = ComponentsVariableResolver.getVariables(this, component);
+//		variables.setVariable("column_count", variable);
+		variables.setVariable("rows_count", new Integer(component.getRows()));
+				
 		writer.startElement(HTML.DIV_ELEM, grid);
 		getUtils().writeAttribute(writer, "class","GridDataColumns");
 		getUtils().writeAttribute(writer, "id","FrozenBox");
@@ -160,13 +170,11 @@
 		
 		state.set_isFrozenColumn(false);
 		grid.walk(context, rowsRenderer, state);
-					
 		writer.endElement("tbody");
 		writer.endElement("table");
 		writer.endElement(HTML.DIV_ELEM);
+		grid.setRowKey(null);
 		
-		
-		
 	}
 	
 	public void renderHeaders(FacesContext context, UIComponent component
@@ -189,9 +197,36 @@
 			
 	public void tearDownState(FacesContext context){
 		GridRendererState.restoreState(context);
-	}	
+	}
 	
+	public String getRowsAjaxUpdate(FacesContext context, UIScrollableGrid grid){
+		JSFunction function = AjaxRendererUtils.buildAjaxFunction(grid, context);
+		Map options = AjaxRendererUtils.buildEventOptions(context, grid);
+		
+		function.addParameter(options);
+		String completeFunction = function.toScript()+"; return false;";
+		return completeFunction;
+	}
 	
+	protected void doDecode(FacesContext context, UIComponent component) {
+		
+		String value = null;
+		
+		if(component instanceof UIScrollableGrid){
+			UIScrollableGrid grid = (UIScrollableGrid)component;
+			ExternalContext externalContext = context.getExternalContext();
+			String clientId = grid.getClientId(context) + "_state_input";
+			
+			Map parameters = externalContext.getRequestParameterMap();
+			if(parameters.containsKey(clientId)){
+			 value = (String)parameters.get(clientId);
+				
+			}
+		}
+		super.doDecode(context, component);
+	}
+		
+	
 //	for benchmark 
 	public void encodeBegin(FacesContext context, UIComponent component
 								) throws IOException {
@@ -211,6 +246,8 @@
 		}
 	}
 	
+	
+	
 	public void encodeChildren(FacesContext context, UIComponent component
 								 )	throws IOException {
 	




More information about the richfaces-svn-commits mailing list