You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ba...@apache.org on 2007/10/25 09:49:02 UTC

svn commit: r588157 - in /myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller: HtmlDataScroller.java HtmlDataScrollerRenderer.java

Author: baranda
Date: Thu Oct 25 00:49:01 2007
New Revision: 588157

URL: http://svn.apache.org/viewvc?rev=588157&view=rev
Log:
Applied patch for TOMAHAWK-777 (Datascroller breaks facets functionality when using trinidad default kit) Thanks to Leonardo Uribe

Modified:
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerRenderer.java

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java?rev=588157&r1=588156&r2=588157&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScroller.java Thu Oct 25 00:49:01 2007
@@ -228,7 +228,7 @@
                 {
                     pageindex = pageCount;
                 }
-                else if (pageindex <= 0)
+                if (pageindex <= 0)
                 {
                     pageindex = 1;
                 }

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerRenderer.java?rev=588157&r1=588156&r2=588157&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerRenderer.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/datascroller/HtmlDataScrollerRenderer.java Thu Oct 25 00:49:01 2007
@@ -18,22 +18,22 @@
  */
 package org.apache.myfaces.custom.datascroller;
 
-import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
-import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
-import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
-import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;
-import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
 
 import javax.faces.application.Application;
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIParameter;
-import javax.faces.component.html.HtmlCommandLink;
 import javax.faces.component.html.HtmlOutputText;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
+
+import org.apache.myfaces.component.html.ext.HtmlCommandLink;
+import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
+import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
 
 /**
  * Renderer for the HtmlDataScroller component.
@@ -62,7 +62,7 @@
         RendererUtils.checkParamValidity(context, component, HtmlDataScroller.class);
 
         Map parameter = context.getExternalContext().getRequestParameterMap();
-        String param = (String) parameter.get(calculateHiddenFieldId(context, (HtmlDataScroller)component));
+        String param = (String) parameter.get(component.getClientId(context));
         if (param != null && param.length() > 0)
         {
             if (param.startsWith(PAGE_NAVIGATION))
@@ -200,84 +200,10 @@
             return;
         }
 
-        renderSubmitFunction(facesContext, scroller);
-        renderHiddenField(facesContext, scroller);
-        renderInvisibleSubmitButton(facesContext, scroller);
-
         renderScroller(facesContext, scroller);
         removeVariables(facesContext, scroller);
     }
 
-    protected void renderSubmitFunction(FacesContext facesContext, HtmlDataScroller scroller)
-        throws IOException {
-        HtmlRendererUtils.ScriptContext scriptContext = new HtmlRendererUtils.ScriptContext();
-        scriptContext.append("function ");
-        scriptContext.append(calculateSubmitFunctionName(facesContext, scroller));
-        scriptContext.append("(paramValue) {").prettyLine();
-        scriptContext.increaseIndent();
-
-        scriptContext.append("var hidden = document.getElementById('");
-        scriptContext.append(calculateHiddenFieldId(facesContext, scroller));
-        scriptContext.append("');");
-        scriptContext.prettyLine();
-        scriptContext.append("hidden.value = paramValue;");
-        scriptContext.prettyLine();
-
-        scriptContext.append("var submitBtn = document.getElementById('");
-        scriptContext.append(calculateInvisibleButtonId(facesContext, scroller));
-        scriptContext.append("');");
-        scriptContext.prettyLine();
-        scriptContext.append("submitBtn.click()");
-        scriptContext.prettyLine();
-
-        scriptContext.decreaseIndent();
-        scriptContext.append("}");
-
-        ResponseWriter writer = facesContext.getResponseWriter();
-        writer.startElement(HTML.SCRIPT_ELEM, scroller);
-        writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
-        writer.writeText(scriptContext.toString(), null);
-        writer.endElement(HTML.SCRIPT_ELEM);
-    }
-
-    protected String calculateSubmitFunctionName(FacesContext facesContext, HtmlDataScroller scroller) {
-        String clientId = scroller.getClientId(facesContext);
-        return clientId.replaceAll(":", "_")+"_submit";
-    }
-
-    protected void renderHiddenField(FacesContext facesContext, HtmlDataScroller scroller)
-        throws IOException {
-
-        ResponseWriter writer = facesContext.getResponseWriter();
-
-        writer.startElement(HTML.INPUT_ELEM, scroller);
-        writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_HIDDEN, null);
-        String id = calculateHiddenFieldId(facesContext, scroller);
-        writer.writeAttribute(HTML.ID_ATTR, id, null);
-        writer.writeAttribute(HTML.NAME_ATTR, id, null);
-        writer.endElement(HTML.INPUT_ELEM);
-    }
-
-    protected String calculateHiddenFieldId(FacesContext facesContext, HtmlDataScroller scroller) {
-        return scroller.getClientId(facesContext)+"_hidden";
-    }
-
-    protected void renderInvisibleSubmitButton(FacesContext facesContext, HtmlDataScroller scroller)
-        throws IOException {
-
-        ResponseWriter writer = facesContext.getResponseWriter();
-
-        writer.startElement(HTML.INPUT_ELEM, scroller);
-        writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_SUBMIT, null);
-        writer.writeAttribute(HTML.ID_ATTR, calculateInvisibleButtonId(facesContext, scroller), null);
-        writer.writeAttribute(HTML.STYLE_ATTR, "display:none;", null);
-        writer.endElement(HTML.INPUT_ELEM);
-    }
-
-    protected String calculateInvisibleButtonId(FacesContext facesContext, HtmlDataScroller scroller) {
-        return scroller.getId()+"_submitButton";
-    }
-
     protected void renderScroller(FacesContext facesContext, HtmlDataScroller scroller)
                     throws IOException
     {
@@ -399,52 +325,28 @@
         writer.startElement(isListLayout(scroller)?HTML.UL_ELEM:HTML.TABLE_ELEM, scroller);
     }
 
-
     protected void renderFacet(FacesContext facesContext, HtmlDataScroller scroller,
                                UIComponent facetComp, String facetName) throws IOException
     {
-        renderLinkStart(facesContext, scroller, facetName);
+    	String onclick = scroller.getOnclick();
+    	String ondblclick = scroller.getOndblclick();
 
+    	HtmlCommandLink link = getLink(facesContext, scroller, facetName);
+        if(onclick != null){
+        	link.setOnclick(onclick);
+        }
+        if(ondblclick != null){
+        	link.setOndblclick(ondblclick);
+        }
+    	
+        link.encodeBegin(facesContext);
         facetComp.encodeBegin(facesContext);
-        if (!facetComp.getRendersChildren())
+        if (facetComp.getRendersChildren())
             facetComp.encodeChildren(facesContext);
         facetComp.encodeEnd(facesContext);
-
-        renderLinkEnd(facesContext);
-    }
-
-    protected void renderLinkStart(FacesContext facesContext, HtmlDataScroller scroller,
-                               String paramValue) throws IOException
-    {
-        String onclick = scroller.getOnclick();
-        String ondblclick = scroller.getOndblclick();
-
-        ResponseWriter writer = facesContext.getResponseWriter();
-        writer.startElement(HTML.ANCHOR_ELEM, scroller);
-        writer.writeAttribute(HTML.HREF_ATTR, "#", null);
-
-        StringBuffer onclickJavascript = new StringBuffer();
-        if (onclick != null) {
-            onclickJavascript.append(onclick).append(";");
-        }
-        onclickJavascript.append(calculateSubmitFunctionName(facesContext, scroller));
-        onclickJavascript.append("('"+paramValue+"')");
-
-        writer.writeAttribute(HTML.ONCLICK_ATTR, onclickJavascript.toString(), null);
-
-        if (ondblclick != null) {
-            writer.writeAttribute(HTML.ONDBLCLICK_ATTR, ondblclick, null);
-        }
+        link.encodeEnd(facesContext);
     }
 
-    protected void renderLinkEnd(FacesContext facesContext) throws IOException
-    {
-        ResponseWriter writer = facesContext.getResponseWriter();
-        writer.endElement(HTML.ANCHOR_ELEM);
-    }
-
-    
-
     /**
      * The "paginator" is a sequence of page numbers which the user can click
      * on to leap directly to a specific page of data.
@@ -536,9 +438,17 @@
             }
             else
             {
-                renderLinkStart(facesContext, scroller, PAGE_NAVIGATION+Integer.toString(idx));
-                writer.write(Integer.toString(idx));
-                renderLinkEnd(facesContext);
+                HtmlCommandLink link = getLink(facesContext, scroller, Integer.toString(idx), idx);
+                if(onclick != null){
+                    link.setOnclick(onclick);
+                }
+                if(ondblclick != null){
+                    link.setOndblclick(ondblclick);
+                }
+
+                link.encodeBegin(facesContext);
+                link.encodeChildren(facesContext);
+                link.encodeEnd(facesContext);
             }
 
             writePaginatorElementEnd(writer, scroller);
@@ -575,12 +485,6 @@
         writer.startElement(isListLayout(scroller)?HTML.UL_ELEM:HTML.TABLE_ELEM, scroller);
     }
 
-    protected String getParameterValue(FacesContext facesContext, HtmlDataScroller scroller,
-                                      String text, int pageIndex) {
-        String id = HtmlDataScrollerRenderer.PAGE_NAVIGATION + Integer.toString(pageIndex);
-        return id;
-    }
-
     protected HtmlCommandLink getLink(FacesContext facesContext, HtmlDataScroller scroller,
                                       String text, int pageIndex)
     {
@@ -626,7 +530,6 @@
         parameter.setTransient(true);
         parameter.setName(scroller.getClientId(facesContext));
         parameter.setValue(facetName);
-        System.out.println("\t\tWith param: id: "+parameter.getId()+" name:" +parameter.getName()+" / "+parameter.getValue());
         List children = link.getChildren();
         children.add(parameter);
         scroller.getChildren().add(link);