[richfaces-issues] [JBoss JIRA] (RF-12845) rich:menuItem does not work as composite component

Michael B (JIRA) jira-events at lists.jboss.org
Fri Mar 15 12:26:41 EDT 2013


Michael B created RF-12845:
------------------------------

             Summary: rich:menuItem does not work as composite component
                 Key: RF-12845
                 URL: https://issues.jboss.org/browse/RF-12845
             Project: RichFaces
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: component-menu
    Affects Versions: 4.3.1
         Environment: Win7 x64, Java 6 x64, Tomcat 7.0.30 x64, RF 4.3.1, IE8 + FF19.0.2
            Reporter: Michael B


When creating a composite component that contain a rich:menuItem, the menu item is not showing. => Client side error while identifying the menu items parent via css-selector.

{code:xml|title:menuItem.xhtml}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html 	xmlns="http://www.w3.org/1999/xhtml"  
		xmlns:h="http://java.sun.com/jsf/html"
		xmlns:f="http://java.sun.com/jsf/core"
		xmlns:rich="http://richfaces.org/rich"
		xmlns:composite="http://java.sun.com/jsf/composite">
		
	<composite:interface>
		<composite:attribute name="icon" type="java.lang.String" required="false" />
		<composite:attribute name="label" type="java.lang.String" required="true" />
		<composite:attribute name="menuItem" type="java.lang.String" required="true" />
		<composite:attribute name="menuKey" type="java.lang.String" required="true" />
		<composite:attribute name="value" type="java.lang.String" required="true" />
	</composite:interface>
 
	<composite:implementation>
		<rich:menuItem label="#{cc.attrs.label}" icon="#{cc.attrs.icon}" action="#{menuController.menuItemClicked}" rendered="#{menuController.isMenuItemAccessible( cc.attrs.menuKey, cc.attrs.menuItem )}">
			<f:param name="selectedItem" value="#{cc.attrs.value}" />
		</rich:menuItem>
	</composite:implementation>
		
</html>
{code}

Including the resulting composite component in a rich:dropDownMenu like 
{code:xml}
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
			    xmlns:ui="http://java.sun.com/jsf/facelets"
			    xmlns:h="http://java.sun.com/jsf/html"
			    xmlns:f="http://java.sun.com/jsf/core"
			    xmlns:a4j="http://richfaces.org/a4j"
			    xmlns:rich="http://richfaces.org/rich"
			    xmlns:xxx="http://java.sun.com/jsf/composite/xxx">
			    
        <rich:toolbar>
            <rich:dropDownMenu>
                <f:facet name="label">
                    <h:outputText value="Test" />
                </f:facet>
                <xxx:menuItem label="Item 1" value="item1" menuKey="aaa" menuItem="bbb" />
            </rich:dropDownMenu>
        </rich:toolbar>
		
</ui:composition>
{code}

... reproduces the problem. Writing the rich:menuItem directly inside the rich:dropDownMenu works. Also wrapping the composite component with rich:menuGroup works. Only the direct child option fails.

See example for comparison - item 2 and 3 are working, while item 1 is not:
{code:xml}
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
			    xmlns:ui="http://java.sun.com/jsf/facelets"
			    xmlns:h="http://java.sun.com/jsf/html"
			    xmlns:f="http://java.sun.com/jsf/core"
			    xmlns:a4j="http://richfaces.org/a4j"
			    xmlns:rich="http://richfaces.org/rich"
			    xmlns:xxx="http://java.sun.com/jsf/composite/xxx">
			    
        <rich:toolbar>
            <rich:dropDownMenu>
                <f:facet name="label">
                    <h:outputText value="Test" />
                </f:facet>
                <xxx:menuItem label="Item 1" value="item1" menuKey="aaa" menuItem="bbb" />
		<rich:menuItem label="Item 2" action="#{menuController.menuItemClicked}" rendered="#{menuController.isMenuItemAccessible( 'aaa', 'bbb' )}">
			<f:param name="selectedItem" value="item2" />
		</rich:menuItem>
		<rich:menuGroup label="Group">
			<xxx:menuItem label="Item 3" value="item3" menuKey="aaa" menuItem="bbb" />
		</rich:menuGroup>
            </rich:dropDownMenu>
        </rich:toolbar>
		
</ui:composition>
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list