problems while reusing a modalPanel with link parameters
serdard Oct 22, 2012 10:25 AMHi,
I'm having problems while using a modalPanel as a template.
i have two user entities in my backingBean and i want to set them via an userSearchTemplate.
Here is my code,
my modalPanel (selectUserTemplate.xhtml);
<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:s="http://jboss.com/products/seam/taglib" xmlns:a="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <div class="prop" style="text-align: left"><s:label styleClass="name #{invalid?'errors':''}" style="#{labelStyle}"> <ui:insert name="label" /> <ui:insert name="input" /> <a:commandLink value="" action="#{util.fillUsers}" oncomplete="Richfaces.showModalPanel('modalPanelUser')" ajaxSingle="true" reRender="panelGridUsers" > <h:graphicImage value="/img/icon-list.gif" style="vertical-align:bottom;" /> </a:commandLink> <rich:modalPanel id="modalPanelUsers" height="400" width="600" > <f:facet name="header"> <h:panelGroup> <ui:insert name="listCaption" /> </h:panelGroup> </f:facet> <f:facet name="controls"> <h:panelGroup> <h:graphicImage value="/img/close_icon.gif" styleClass="hidelink" id="hidelink" /> <rich:componentControl for="modalPanelUsers" attachTo="hidelink" operation="hide" event="onclick" /> </h:panelGroup> </f:facet> <h:panelGrid columns="1" id="panelGridUsers" width="100%"> <rich:dataTable style="width:100%" rows="10" value="#{userListGrid}" var="userRow" rowClasses="row1,row2" onRowMouseOver="this.style.backgroundColor='#FFFFD4'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" > <rich:column > <f:facet name="header"> <h:outputText value="USER NAME" /> </f:facet> <h:outputText value="#{userRow.name}" /> </rich:column> <rich:column> <ui:insert /> </rich:column> <f:facet name="footer"> <rich:datascroller /> </f:facet> </rich:dataTable> </h:panelGrid> </rich:modalPanel></div> </ui:composition>
and the usage;
<s:decorate id="selectUser1" template="selectUserTemplate.xhtml"> <ui:define name="label">USERS</ui:define> <ui:define name="listCaption">User List</ui:define> <ui:define name="input"> <h:inputText value="#{backingBean.newFirstUser.name}" readonly="true" size ="40"/> </ui:define> <a:commandLink value="SELECT 1" ajaxSingle="true" reRender="selectUser1" oncomplete="Richfaces.hideModalPanel('modalPanel')" action="#{backingBean.setNewFirstUser(userRow)}" /> </s:decorate> . . . <s:decorate id="selectUser2" template="selectUserTemplate.xhtml"> <ui:define name="label">USERS</ui:define> <ui:define name="listCaption">User List</ui:define> <ui:define name="input"> <h:inputText value="#{backingBean.newSecondUser.name}" readonly="true" size ="40"/> </ui:define> <a:commandLink value="SELECT 2" ajaxSingle="true" reRender="selectUser2" oncomplete="Richfaces.hideModalPanel('modalPanel')" action="#{backingBean.setNewSecondUser(userRow)}" /> </s:decorate>
i'm passing the <a:commandLink > parameters <ui:insert/> area of modalPanel.
in my parent panel if i click to selectUser1 link two times my rich:datatable shows me SELECT1 and SELECT2 in order altough i didn't click selectUser2 modalPanels link.
It is also running backingBean.setNewFirstUser(userRow) and backingBean.setNewSecondUser(userRow) actions in order.
what am i doing wrong??
P.S:sorry for my bad english