[richfaces-issues] [JBoss JIRA] (RF-11950) rich:findComponent does not retrieve the component

Jean ANDRE (JIRA) jira-events at lists.jboss.org
Mon Feb 20 16:38:36 EST 2012


    [ https://issues.jboss.org/browse/RF-11950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12669359#comment-12669359 ] 

Jean ANDRE edited comment on RF-11950 at 2/20/12 4:36 PM:
----------------------------------------------------------

It's seem also that f:subView is ignored by the findComponent. I means that the id of the component is not well built because, we do not have anymore the form id, neither the subView id.

Here is the generated function
==============================
{code}
function anonymous(event) {
rich:
findComponent("TAB_CLIENT-1-TAB_ASO-closeCmd").click();
}
{code}

The rendered HTML code - View Source / Inspect Element / Firebug 
Close Button on Tab
================================================================
{code}
<input id="tabbedForm:TAB_CLIENT-1-subView:TAB_CLIENT-1-TAB_ASO-closeCmd" class="closeButton" type="image" src="/crm/images/closeButton.png" onclick="RichFaces.ajax("tabbedForm:TAB_CLIENT\u002D1\u002DsubView:TAB_CLIENT\u002D1\u002DTAB_ASO\u002DcloseCmd",event,{"incId":"1"} );return false;" name="tabbedForm:TAB_CLIENT-1-subView:TAB_CLIENT-1-TAB_ASO-closeCmd">
{code}

The XHTML code on Tab / Close button
====================================
{code}
<a4j:commandButton id="#{activity.id}-closeCmd"
                image="/images/closeButtonDisable.png"
           styleClass="closeButton"
               action="#{tabsClientController.doCloseActivity(activity.id)}"
               render="tabsClient"
             disabled="#{activity.id != tabsClientController.activeTab}" />
{code}

The caller
==========
{code}
<!--            -->
<!--   CANCEL   -->
<!--            -->
<a4j:commandButton id="aso-cancelCmd"
		value="#{msg['common.command.cancel']}"
	      onclick="rich:findComponent('#{activity.id}-closeCmd').click();"
               render="tabsClient"
	    immediate="true" />
{code}
		


                
      was (Author: jorelia64):
    It's seem also that f:subView is ignored by the findCompent. I means that the id of the component is not well built because, we do not have anymore the form id, neither the subView id.

Here is the generated function
==============================
{code}
function anonymous(event) {
rich:
findComponent("TAB_CLIENT-1-TAB_ASO-closeCmd").click();
}
{code}

The rendered HTML code - View Source / Inspect Element / Firebug 
Close Button on Tab
================================================================
{code}
<input id="tabbedForm:TAB_CLIENT-1-subView:TAB_CLIENT-1-TAB_ASO-closeCmd" class="closeButton" type="image" src="/crm/images/closeButton.png" onclick="RichFaces.ajax("tabbedForm:TAB_CLIENT\u002D1\u002DsubView:TAB_CLIENT\u002D1\u002DTAB_ASO\u002DcloseCmd",event,{"incId":"1"} );return false;" name="tabbedForm:TAB_CLIENT-1-subView:TAB_CLIENT-1-TAB_ASO-closeCmd">
{code}

The XHTML code on Tab / Close button
====================================
{code}
<a4j:commandButton id="#{activity.id}-closeCmd"
                image="/images/closeButtonDisable.png"
           styleClass="closeButton"
               action="#{tabsClientController.doCloseActivity(activity.id)}"
               render="tabsClient"
             disabled="#{activity.id != tabsClientController.activeTab}" />
{code}

The caller
==========
{code}
<!--            -->
<!--   CANCEL   -->
<!--            -->
<a4j:commandButton id="aso-cancelCmd"
		value="#{msg['common.command.cancel']}"
	      onclick="rich:findComponent('#{activity.id}-closeCmd').click();"
               render="tabsClient"
	    immediate="true" />
{code}
		


                  
> rich:findComponent does not retrieve the component 
> ---------------------------------------------------
>
>                 Key: RF-11950
>                 URL: https://issues.jboss.org/browse/RF-11950
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: base functionality 
>    Affects Versions: 4.1.0.Final
>         Environment: Websphere 8 - RAD 8 - JSF Mojorra 2.1.4 - Spring 3.0.6 Final - Firefox 10.0 - Windows 7 (6.1 sp1) 
>            Reporter: Jean ANDRE
>            Assignee: Ján Jamrich
>         Attachments: index.xhtml, listClient.xhtml, requestClientDocument.xhtml, tabsClient.xhtml
>
>
> The rich:findComponent does not retrieve the component - What we want to achieve is to send .click() event on a command button. We got different errors depending the tests we made such as syntax error.
> The involved code:
> ------------------
> {code}
> <!--            -->
> <!--   CANCEL   -->
> <!--            -->
> <a4j:commandButton id="#{tab.id}-rcd-cancelCreateCmd"
> 		value="#{msg['common.command.cancel']}"
> 	      onclick="#{rich:findComponent('#{activity.id}-closeCmd')}.click();;return false;"
> 	      render="#{tab.id}-tabsClient"
> 	   immediate="true" />
> {code}
> The error we got:
> ----------------
> {code}
> syntax error - [Stopper sur une erreur] - jsf.js.jsf?ln=javax.faces (ligne 1)
> .click();return false;
> {code}
> The corresponding view source:
> ------------------------------
> {code}
> <input type="submit" value="Cancel" 
> onclick="jsf.util.chain(this,event,&quot;.click();return false;&quot;,
> &quot;RichFaces.ajax( \&quot;tabbedForm:TAB_CLIENT\\u002D1\\u002Drcd\\u002DcancelCreateCmd\&quot;,event,{\&quot;incId\&quot;:\&quot;1\&quot;} )&quot;);
> return false;" 
> name="tabbedForm:TAB_CLIENT-1-rcd-cancelCreateCmd" id="tabbedForm:TAB_CLIENT-1-rcd-cancelCreateCmd">
> {code}
> The generated javaScript under firebug:
> --------------------------------------
> {code}
> function onclick(event) {
> jsf.util.chain(this, event, ".click();return false;", "RichFaces.ajax(\"tabbedForm:TAB_CLIENT\\u002D1\\u002Drcd\\u002DcancelCreateCmd\",event,{\"incId\":\"1\"} )");
> return false;
> }
> {code}
> If we hard code the Id instead of the calculated one we got following error:
> {code}
> uncaught exception: Syntax error, unrecognized expression: TAB_CLIENT-1-TAB_RCD-closeCmd
> Line 0
> {code}
> The generated javaScript under firebug:
> --------------------------------------
> {code}
> function anonymous(event) {
> rich:
> findComponent("TAB_CLIENT-1-TAB_RCD-closeCmd").click();
> return false;
> }
> {code}
> If we use directly jQuery:
> {code}
> <!--            -->
> <!--   CANCEL   -->
> <!--            -->
> <a4j:commandButton id="#{tab.id}-rcd-cancelCreateCmd"
>                 value="#{msg['common.command.cancel']}"
>               onclick="$('##{activity.id}-closeCmd').click();return false;"
>                render="desktopTabPanel"
>             immediate="true" />
> {code}
> {code}
> missing ; before statement
> http://localhost:12000/crm/javax.faces.resource/jsf.js.jsf?ln=javax.faces
> Line 1
> {code}
> If we hardcode an existing static Id, we got the error as shown the screen capture:
> {code}
> function onclick(event) {
> jsf.util.chain(this, event, "org.richfaces.component.UICommandButton at 39de2ca.click();", "RichFaces.ajax(\"tabbedForm:TAB_CLIENT\\u002D1\\u002Drcd\\u002DcancelCreateCmd\",event,{\"incId\":\"1\"} )");
> return false;
> }
> {code}
> {code}
> <a4j:commandButton id="#{tab.id}-rcd-cancelCreateCmd"
> 		value="#{msg['common.command.cancel']}"
> 	      onclick="#{rich:findComponent('qsearchClient')}.click();"
> 	       render="#{tab.id}-tabsClient"
> 	    immediate="true" />&#160;
> {code}

--
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