[
https://issues.jboss.org/browse/RF-12845?page=com.atlassian.jira.plugin.s...
]
Michael B updated RF-12845:
---------------------------
Description:
When creating a composite component that contains 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}
was:
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}
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
Labels: richfaces
When creating a composite component that contains 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