[richfaces-issues] [JBoss JIRA] (RF-12029) AbstractTogglePanel should extend UIRepeat, instead of UIOutput
Brian Leathem (JIRA)
jira-events at lists.jboss.org
Wed Mar 14 15:10:47 EDT 2012
[ https://issues.jboss.org/browse/RF-12029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676875#comment-12676875 ]
Brian Leathem commented on RF-12029:
------------------------------------
Consider the dynamicly rendered tabs in the facelet:
{code}
<a4j:outputPanel id="output" ajaxRendered="true">
Validation failed:#{facesContext.validationFailed}
</a4j:outputPanel>
<h:form id="form">
<h1>Dynamic tab panel</h1>
<ou:tabPanel id="tabPanel" switchType="ajax" value="#{dynamicTabPanelBean.ladies}" var="person" rowKeyVar="index">
<ou:tab id="tab" name="#{person.name}">
#{person.name}
<h:inputText id="birthday" value="#{person.birthDate}">
<f:convertDateTime pattern="yyyy-mm-dd"/>
</h:inputText>
</ou:tab>
</ou:tabPanel>
</h:form>
{code}
Switching tabs in ajax modes takes two clicks - the tab does not change until the 2nd click.
The response on the first click:
{code:title="Response after the first click on tab 1 (formatted for clarity)}
<?xml version='1.0' encoding='UTF-8'?>
<partial-response>
<changes>
<update id="output"><![CDATA[<span id="output">Validation failed:false</span>]]></update>
<update id="javax.faces.ViewState"><![CDATA[3037308798212741137:-1743374825880192262]]></update>
</changes>
</partial-response>
{code}
the response on the second click:
{code:title="Response after the second click on tab 1 (formatted for clarity)}
<?xml version='1.0' encoding='UTF-8'?>
<partial-response>
<changes>
<update id="output"><![CDATA[<span id="output">Validation failed:false</span>]]></update>
<update id="form:tabPanel:1:tab">
<![CDATA[
<div id="form:tabPanel:1:tab" class="rf-tab">
<div class="rf-tab-cnt" id="form:tabPanel:1:tab:content">
Ayn Rand
<input id="form:tabPanel:1:birthday" type="text" name="form:tabPanel:1:birthday" value="1905-00-02" />
</div>
<script type="text/javascript">new RichFaces.ui.Tab("form:tabPanel:1:tab",{"index":1,"leave":null,"togglePanelId":"form:tabPanel","switchMode":"ajax","name":"Ayn Rand","enter":null,"disabled":false} )</script>
</div>
]]>
</update>
<update id="javax.faces.ViewState"><![CDATA[3037308798212741137:-1743374825880192262]]></update>
<extension id="org.richfaces.extension">
<complete>RichFaces.$('form:tabPanel').onCompleteHandler('Ayn Rand');;</complete>
</extension>
</changes>
</partial-response>
{code}
Notice how the response content only reflects the tab change in the response of the 2nd click
Note: For both the first and second response, the executeIds in the ExtendedPartialViewContext is:
{code}
form:tabPanel:1:tab
form:tabPanel
{code}
> AbstractTogglePanel should extend UIRepeat, instead of UIOutput
> ---------------------------------------------------------------
>
> Key: RF-12029
> URL: https://issues.jboss.org/browse/RF-12029
> Project: RichFaces
> Issue Type: Enhancement
> Security Level: Public(Everyone can see)
> Components: component-output
> Reporter: Brian Leathem
> Assignee: Bernard Labno
>
> Valid uses exist for dynamically generating rich:tab, rich:togglePanelItem, rich:accordionItem. Current techniques for supporting this use case involve using c:forEach, which is a problem since c: tags are processed too early to nicely support dynamic use cases.
> One idea to support this use case, is to have AbstractTogglePanel extend UIRepeat, instead of UIOutput to better dynamic child components.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the richfaces-issues
mailing list