[
https://issues.apache.org/jira/browse/TRINIDAD-653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12523101
]
Matt Cooper commented on TRINIDAD-653:
--------------------------------------
If there are multiple EditableValueHolders inside the body of the
panelLabelAndMessage, perhaps the default behavior (if no for is specified)
should be to traverse through the children/grandchildren until the first one is
found. The children might be wrapped in some other layout component in which
we would probably want to skip over.
> PanelLabelAndMessageRenderer shouldn't need the "for" given to detect what it
> is for
> ------------------------------------------------------------------------------------
>
> Key: TRINIDAD-653
> URL: https://issues.apache.org/jira/browse/TRINIDAD-653
> Project: MyFaces Trinidad
> Issue Type: Improvement
> Affects Versions: 1.0.2-core
> Reporter: Andrew Robinson
>
> Since CorePanelLabelAndMessage will usually be used having the first child
> component as the input, the renderer should be able to determine the "for"
> attribute value without it being specified. Here is code that can be used in
> the PanelLabelAndMessageRenderer:
> @Override
> protected String getLabelFor(FacesContext context, RenderingContext arc,
> UIComponent component, FacesBean bean)
> {
> String forValue = getFor(bean);
> String val = MessageUtils.getClientIdFor(context, component, forValue);
> if (val == null)
> {
> if (component.getChildCount() > 0)
> {
> UIComponent firstChild = (UIComponent)component.getChildren().get(0);
> if (firstChild instanceof EditableValueHolder)
> {
> val = firstChild.getClientId(context);
> }
> }
> }
> return val;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.