[
https://issues.jboss.org/browse/RF-13066?page=com.atlassian.jira.plugin.s...
]
Andrea Martino commented on RF-13066:
-------------------------------------
I have debugged the code and at least I understand why the <a4j:ajax /> behavior is
not executed.
When clicking on the radiobutton the component that is executed has type
org.apache.myfaces.custom.radio.HtmlRadio (coming from tomahawk). Since this class does
not implement ClientBehaviorHolder,
org.richfaces.context.RenderComponentCallback#findBehavior(UIComponent) returns null and
no update is performed.
In order to work with "spread" layout, org.apache.myfaces.custom.radio.HtmlRadio
should probably implement ClientBehaviorHolder and delegate the calls to the
"for" radio button.
the org.apache.myfaces.custom.radio.HtmlRadio should be extended as following:
{code}
/**
* Delegating ClientBehaviorHolder to "for" UIComponent
*/
@Override
public Map<String, List<ClientBehavior>> getClientBehaviors() {
UIComponent uiSelectOne = findComponent(getFor());
if (uiSelectOne instanceof ClientBehaviorHolder) {
ClientBehaviorHolder clientBehaviorHolder = (ClientBehaviorHolder) uiSelectOne;
return clientBehaviorHolder.getClientBehaviors();
}
}
{code}
I will create a bug for Tomahawk and see if this could be implemented on their side.
a4j:ajax does not work with tomahawk radiobuttons
-------------------------------------------------
Key: RF-13066
URL:
https://issues.jboss.org/browse/RF-13066
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 4.3.0.Final
Environment: a4j:ajax does not work inside a tomahawk radiobutton
Reporter: Andrea Martino
Labels: a4j:ajax
Fix For: 5-Tracking
for example the following code does not work:
{code}
<t:selectOneRadio id="myRadio" value="#{testtest.xxxEnum}"
layout="spread">
<s:enumItem enumValue="XXX" label="XXX" />
<s:enumItem enumValue="YYY" label="YYY" />
<a4j:ajax />
</t:selectOneRadio>
<div class="ct-radio">
<strong><t:radio for="myRadio"
index="0"/></strong>
</div>
<div class="ct-radio">
<strong><t:radio for="myRadio"
index="1"/></strong>
</div>
{code}
If I replace <a4j:ajax/> by <f:ajax/> everything works as expected. I would
like to user a4j:ajax instead of f:ajax because tooltips are not correctly refreshed when
I use f:ajax (there should be already a bug opened for that).
PS: I'm using tomahawk 1.1.14
--
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