You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2008/08/05 22:42:20 UTC

svn commit: r682940 - /myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java

Author: matzew
Date: Tue Aug  5 13:42:20 2008
New Revision: 682940

URL: http://svn.apache.org/viewvc?rev=682940&view=rev
Log:
TRINIDAD-1010 - Nested elements like tr:icon are not rendered in a commandNavigationItem if it is in a navigationPane

thx to Sven Rottstock for his patch

Modified:
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.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/NavigationPaneRenderer.java?rev=682940&r1=682939&r2=682940&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/NavigationPaneRenderer.java Tue Aug  5 13:42:20 2008
@@ -40,6 +40,7 @@
 import org.apache.myfaces.trinidad.component.core.nav.CoreNavigationPane;
 import org.apache.myfaces.trinidad.context.Agent;
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
+import org.apache.myfaces.trinidad.render.RenderUtils;
 import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
 import org.apache.myfaces.trinidad.context.RenderingContext;
 
@@ -578,6 +579,28 @@
     renderEncodedResourceURI(context, "src", resolvedIconUri);
     rw.endElement("img");
   }
+  
+  @SuppressWarnings("unchecked")
+  private void _renderCommandChildren(
+    FacesContext context,
+    UIXCommand uiComp) throws IOException
+  {
+    for(UIComponent child : (List<UIComponent>)uiComp.getChildren())
+    {
+      RenderUtils.encodeRecursive(context, child);
+    }
+  }
+  
+  private void _renderText(
+    ResponseWriter rw,
+    Map<String, Object> itemData) throws IOException
+  {
+    String text = toString(itemData.get("text"));
+    if(text != null)
+    {
+      rw.write(text);
+    }
+  }
 
   private void _writeItemLink(
     FacesContext context,
@@ -587,13 +610,14 @@
     boolean isDisabled
     ) throws IOException
   {
+    UIXCommand commandChild = (UIXCommand)itemData.get("component");
     if (isDisabled)
     {
-      rw.write(toString(itemData.get("text")));
+      _renderText(rw, itemData);
+      _renderCommandChildren(context, commandChild);
       return;
     }
 
-    UIXCommand commandChild = (UIXCommand)itemData.get("component");
     String destination = toString(itemData.get("destination"));
     boolean immediate = false;
     boolean partialSubmit = false;
@@ -658,7 +682,8 @@
     {
       rw.writeAttribute("accessKey", accessKey, null);
     }
-    rw.write(toString(itemData.get("text")));
+    _renderText(rw, itemData);
+    _renderCommandChildren(context, commandChild);
     rw.endElement("a"); // linkElement
 
     if (destination == null)
@@ -1064,7 +1089,7 @@
         }
       }
 
-      rw.write(toString(itemData.get("text")));
+      _renderText(rw, itemData);
       rw.endElement("option");
     }
   }