You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ct...@apache.org on 2008/04/08 01:27:58 UTC

svn commit: r645734 - in /myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core: desktop/ xhtml/ xhtml/table/

Author: ctoth
Date: Mon Apr  7 16:27:57 2008
New Revision: 645734

URL: http://svn.apache.org/viewvc?rev=645734&view=rev
Log:
TRINIDAD-951 Printable output mode produces javascript errors

Modified:
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelPopupRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ShowDetailRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TreeRenderer.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/desktop/TreeTableRenderer.java Mon Apr  7 16:27:57 2008
@@ -168,7 +168,9 @@
     super.encodeAll(context, arc, component, bean);
 
     // have we rendered the script before?
-    if (arc.getProperties().put(_JS_LIBS_KEY, Boolean.TRUE) == null)
+    // and are we not in printable mode (scripting disabled)?
+    if (arc.getProperties().put(_JS_LIBS_KEY, Boolean.TRUE) == null
+        && supportsScripting(arc))
     {
       ResponseWriter writer = context.getResponseWriter();
       writer.startElement(XhtmlConstants.SCRIPT_ELEMENT, null);
@@ -250,7 +252,7 @@
     boolean hasExpandAll = isExpandAllEnabled(component);
     super.renderControlBarLinks(context, arc, tContext, component,
                                 hasExpandAll || useDivider);
-    if (hasExpandAll)
+    if (hasExpandAll && supportsScripting(arc)) //not in printable mode
     {
       // must render these IDs so that PPR can restore the focus correctly:
       String preId = component.getClientId(context) + NamingContainer.SEPARATOR_CHAR;

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/BodyRenderer.java Mon Apr  7 16:27:57 2008
@@ -33,7 +33,6 @@
 import org.apache.myfaces.trinidad.context.RequestContext;
 import org.apache.myfaces.trinidad.context.RenderingContext;
 import org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
-import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit;
 import org.apache.myfaces.trinidad.skin.Skin;
 import org.apache.myfaces.trinidad.util.Service;
 
@@ -202,7 +201,7 @@
     else
       onload = toString(bean.getProperty(_onloadKey));
 
-    String checkLoad;
+    String checkLoad = "";
 
     //PH: Currently, if a browser supports PPR, _checkLoad function is called
     //that sets initialFocus if set.For non-PPR browsers like blackBerry 4.0,
@@ -221,7 +220,10 @@
     }
     else
     {
-      checkLoad = "_checkLoadNoPPR()"; 
+      //HKuhn - in printable mode we don't need PPR checking
+      // Check only, if Agents supports Navigation or Editing
+      if (supportsNavigation(arc) || supportsEditing(arc))
+        checkLoad = "_checkLoadNoPPR()";
     }
     
     onload = XhtmlUtils.getChainedJS(checkLoad, onload, false);

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ColumnGroupRenderer.java Mon Apr  7 16:27:57 2008
@@ -453,7 +453,9 @@
     //  that the only reason desktop renders it in both places
     //  was for Netscape.  If I'm right, then really this decision should
     //  be driven off an "event bubbling" agent property.
-    if (!isPDA(arc))
+    // - HKuhn if printable mode (supportScripting is disabled),
+    // then no need for rendering onclick
+    if (!isPDA(arc) && supportsScripting(arc))
       rw.writeAttribute("onclick", sortOnclick, null);
 
     // TODO: we should pass in null for "event bubbling" systems

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/FormRenderer.java Mon Apr  7 16:27:57 2008
@@ -166,12 +166,16 @@
 
     rw.writeAttribute("method", "POST", null);
 
-    rw.writeAttribute("onkeypress",
+    //only render onkeypress if supports scripting (not in printable mode)
+    if (supportsScripting(arc))
+    {
+      rw.writeAttribute("onkeypress",
                       getFullOnkeypress(context,
                                         comp,
                                         bean,
                                         formName),
                       "onkeypress");
+    }
 
     // render the autocomplete attribute
     if (supportsAutoCompleteFormElements(arc))

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java Mon Apr  7 16:27:57 2008
@@ -105,7 +105,7 @@
     if (renderMsgBox)
     {
 
-      if (!isGlobalOnly && inlineValidation)
+      if (!isGlobalOnly && inlineValidation && supportsScripting(arc))
       {
         writer.startElement(XhtmlConstants.SCRIPT_ELEMENT, null);
         renderScriptDeferAttribute(context, arc);

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelPopupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelPopupRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelPopupRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelPopupRenderer.java Mon Apr  7 16:27:57 2008
@@ -124,10 +124,10 @@
   protected void encodeAll(FacesContext context, RenderingContext arc,
       UIComponent component, FacesBean bean) throws IOException
   {
-    // Currently, we require scripting to render anything
+    //HKuhn - in printable mode (scripting is disabled) we need only the trigger
     if (!supportsScripting(arc))
     {
-      _LOG.severe("Agent requires Script Support - unable to render.");
+      renderTrigger(context, arc, component, bean);
       return;
     }
 

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ShowDetailRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ShowDetailRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ShowDetailRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ShowDetailRenderer.java Mon Apr  7 16:27:57 2008
@@ -346,13 +346,16 @@
     RenderingContext arc,
     String           onclickString ) throws IOException
   {
-    if (!supportsNavigation(arc))
-      return;
-
     ResponseWriter rw = context.getResponseWriter();
-    rw.startElement("a", null);
-    rw.writeAttribute("onclick", onclickString, null);
-    rw.writeURIAttribute("href", "#", null);
+    if (!supportsNavigation(arc)) {
+      rw.startElement("span", null);
+    }
+    else
+    {
+      rw.startElement("a", null);
+      rw.writeAttribute("onclick", onclickString, null);
+      rw.writeURIAttribute("href", "#", null);
+    }
   }
 
   private String _generateOnClickString(
@@ -413,10 +416,11 @@
     FacesContext        context,
     RenderingContext arc) throws IOException
   {
+    ResponseWriter rw = context.getResponseWriter();
     if (!supportsNavigation(arc))
-      return;
-
-    context.getResponseWriter().endElement("a");
+      rw.endElement("span");
+    else
+      rw.endElement("a");
   }
 
   /**

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TableRenderer.java Mon Apr  7 16:27:57 2008
@@ -391,17 +391,21 @@
         formData.addNeededValue(XhtmlConstants.STATE_PARAM);
         formData.addNeededValue(XhtmlConstants.VALUE_PARAM);
 
-        rw.startElement(XhtmlConstants.SCRIPT_ELEMENT, null);
-        renderScriptDeferAttribute(context, arc);
-        // Bug #3426092:
-        // render the type="text/javascript" attribute in accessibility mode
-        renderScriptTypeAttribute(context, arc);
+        //HKuhn - no need for scripts in printable mode
+        if (supportsScripting(arc))
+        {
+          rw.startElement(XhtmlConstants.SCRIPT_ELEMENT, null);
+          renderScriptDeferAttribute(context, arc);
+          // Bug #3426092:
+          // render the type="text/javascript" attribute in accessibility mode
+          renderScriptTypeAttribute(context, arc);
 
-        String formName = formData.getName();
+          String formName = formData.getName();
 
-        rw.writeText(tContext.getJSVarName()+"="+
-                     TreeUtils.createNewJSCollectionComponentState(formName, tid)+";", null);
-        rw.endElement(XhtmlConstants.SCRIPT_ELEMENT);
+          rw.writeText(tContext.getJSVarName()+"="+
+                 TreeUtils.createNewJSCollectionComponentState(formName, tid)+";", null);
+          rw.endElement(XhtmlConstants.SCRIPT_ELEMENT);
+        }
       }
 
       int first = tContext.getCollectionComponent().getFirst();

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TreeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TreeRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TreeRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/TreeRenderer.java Mon Apr  7 16:27:57 2008
@@ -192,26 +192,30 @@
                   leftToRight, (i == 0), (i == rootSize - 1), 0);
     }
 
-    rw.startElement("script", null);
-    renderScriptDeferAttribute(context, rc);
-    renderScriptTypeAttribute(context, rc);
+    //HKuhn - not needed in printable mode (scripting disabled)
+    if (supportsScripting(rc))
+    {
+      rw.startElement("script", null);
+      renderScriptDeferAttribute(context, rc);
+      renderScriptTypeAttribute(context, rc);
+
+      _renderTreeJS(context, rc, bean);
+
+      //out.writeText("_setNodes('"+name+"','"+nodesRendered+"');");
+
+      String selectedParam =
+        id + NamingContainer.SEPARATOR_CHAR + SELECTED_PARAM;
+
+      rw.writeText("var " + varName + " = " +
+                       _createNewJSSelectionState(formName, id,
+                                                  selectedParam), null);
+      rw.endElement("script");
 
-    _renderTreeJS(context, rc, bean);
-
-    //out.writeText("_setNodes('"+name+"','"+nodesRendered+"');");
-
-    String selectedParam =
-      id + NamingContainer.SEPARATOR_CHAR + SELECTED_PARAM;
-
-    rw.writeText("var " + varName + " = " +
-                     _createNewJSSelectionState(formName, id,
-                                                selectedParam), null);
-    rw.endElement("script");
+      fd.addNeededValue(selectedParam);
+    }
     rw.endElement("div");
 
-    fd.addNeededValue(selectedParam);
     fd.addNeededValue(_PATH_PARAM);
-
 
   }
 

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java?rev=645734&r1=645733&r2=645734&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/table/TreeNodeColumnRenderer.java Mon Apr  7 16:27:57 2008
@@ -117,9 +117,12 @@
       // disable the link's text decoration
       renderStyleClass(context, arc,
                        SkinSelectors.AF_TREE_TABLE_EXPANSION_ICON_STYLE_CLASS);
-
-      writer.writeAttribute("onclick", onclick, null);
-      writer.writeURIAttribute("href", "#", null);
+      //HKuhn - don't render onclick in printable mode
+      if (XhtmlRenderer.supportsScripting(arc))
+      {
+        writer.writeAttribute("onclick", onclick, null);
+        writer.writeURIAttribute("href", "#", null);
+      }
 
       // Render the expand/collapse Icon
       _renderExpansionIcon(context, arc, disclosed, onclick);