Ajuda com a4j:commandButton + rich:modalPanel.

294 views
Skip to first unread message

Valbert Campos

unread,
Jan 21, 2011, 6:31:43 PM1/21/11
to jav...@googlegroups.com
Fala galera, blz?

Sabem o que pode estar errado no meu a4j:commandButton?....estou utilizando para alteracoes juntamente com rich:modalPanel.
Segue parte do código...

Obrigado....


<f:view>
    <h:form>
        <rich:dataTable value="#{contatoManager.contatos}" var="contato"
                id="tbl_listaContatos"
                 onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                 onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
                 >
                 <f:facet name="header">
                     <h:panelGroup>
                         <h:outputText value="Contatos Cadastrados" />
                         <a4j:commandLink action="#{contatoManager.novoContato}" ajaxSingle="true" id="novoLink"
                             oncomplete="#{rich:component('modal_novoContato')}.show();">
                             <h:graphicImage value="image/ico/novo.png" style="border:0" />
                         </a4j:commandLink>
                         <rich:toolTip for="novoLink" value="Cadastrar Contato" />
                     </h:panelGroup>
                 </f:facet>
                <rich:column sortBy="#{contato.nome}">
                    <f:facet name="header">
                        <h:outputText value="Nome" />
                    </f:facet>
                    <h:outputText value="#{contato.nome}" />
                </rich:column>
                <rich:column sortBy="#{contato.dataNascimento}">
                    <f:facet name="header">
                        <h:outputText value="Data de Nascimento" />
                    </f:facet>
                    <h:outputText value="#{contato.dataNascimento}">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>
                </rich:column>
                <rich:column sortBy="#{contato.email}">
                    <f:facet name="header">
                        <h:outputText value="E-mail" />
                    </f:facet>
                    <h:outputText value="#{contato.email}" />
                </rich:column>
                <rich:column>
                    <f:facet name="header">
                        <h:outputText value="Editar" />
                    </f:facet>
                    <a4j:commandLink ajaxSingle="true" id="editarLink"
                        oncomplete="#{rich:component('modal_editarContato')}.show();">
                         <h:graphicImage value="image/ico/edit.png" style="border:0" />
                         <f:setPropertyActionListener target="#{contatoManager.contato}" value="#{contato}"/>
                    </a4j:commandLink>
                </rich:column>
                <rich:column>
                    <f:facet name="header">
                        <h:outputText value="Deletar" />
                    </f:facet>
                    <a4j:commandLink ajaxSingle="true" id="deleteLink"
                        oncomplete="#{rich:component('modal_confirmacao')}.show();">
                         <h:graphicImage value="image/ico/delete.png" style="border:0" />
                         <f:setPropertyActionListener target="#{contatoManager.contato}" value="#{contato}"/>
                    </a4j:commandLink>
                </rich:column>
                <f:facet name="footer">
                    <rich:datascroller for="tbl_listaContatos" maxPages="15" reRender="tbl_listaContatos"/>
                </f:facet>
        </rich:dataTable>
            <rich:message/>
    </h:form>
   
    <rich:modalPanel id="modal_novoContato" autosized="true" width="450">
        <f:facet name="header">
            <h:outputText value="Novo Contato" />
        </f:facet>
        <f:facet name="controls">
            <h:panelGroup>
                <h:graphicImage value="image/ico/close.png" id="img_fechar" />
                <rich:componentControl for="modal_novoContato" attachTo="img_fechar" operation="hide" event="onclick"/>
            </h:panelGroup>
        </f:facet>
        <h:form>
            <h:panelGrid columns="1">
                <a4j:outputPanel ajaxRendered="true">
                    <h:panelGrid columns="2">
                        <h:outputText value="Nome" />
                        <h:inputText value="#{contatoManager.contato.nome}" />
                        <h:outputText value="Email" />
                        <h:inputText value="#{contatoManager.contato.email}" />
                        <h:outputText value="Data de Nascimento" />
                        <h:inputText value="#{contatoManager.contato.dataNascimento}" />
                    </h:panelGrid>
                </a4j:outputPanel>
                <h:panelGrid columns="2">
                    <a4j:commandButton value="Salvar" reRender="tbl_listaContatos, carregando" actionListener="#{contatoManager.adicionar}"
                        oncomplete="if (#{facesContext.maximumSeverity==null} #{rich:component('modal_novoContato')}.hide();"
                    />
                    <a4j:commandButton value="Cancelar" onclick="#{rich:component('modal_novoContato')}.hide(); return false;"/>
                </h:panelGrid>
            </h:panelGrid>
        </h:form>
    </rich:modalPanel>
   
    <rich:modalPanel id="modal_editarContato" autosized="true" width="450">
        <f:facet name="header">
            <h:outputText value="Editar Contato" />
        </f:facet>
        <f:facet name="controls">
            <h:panelGroup>
                <h:graphicImage value="image/ico/close.png" id="img_close" />
                <rich:componentControl for="modal_editarContato" attachTo="img_close" operation="hide" event="onclick"/>
            </h:panelGroup>
        </f:facet>
        <h:form id="form_editarCadastro">
            <h:panelGrid columns="1">
                <a4j:outputPanel ajaxRendered="true">
                    <h:panelGrid columns="2">
                        <h:outputText value="Nome" />
                        <h:inputText value="#{contatoManager.contato.nome}" />
                        <h:outputText value="Email" />
                        <h:inputText value="#{contatoManager.contato.email}" />
                        <h:outputText value="Data de Nascimento" />
                        <h:inputText value="#{contatoManager.contato.dataNascimento}" />
                    </h:panelGrid>
                </a4j:outputPanel>
                <h:panelGrid columns="2">
                    <a4j:commandButton value="Salvar" reRender="tbl_listaContatos, carregando" action="#{contatoManager.adicionar}"
                        oncomplete="if (#{facesContext.maximumSeverity==null} #{rich:component('modal_editarContato')}.hide();"
                    />
                    <a4j:commandButton value="Cancelar" onclick="#{rich:component('modal_editarContato')}.hide(); return false;"/>
                </h:panelGrid>
            </h:panelGrid>
        </h:form>
    </rich:modalPanel>
   
    <rich:modalPanel id="modal_confirmacao" autosized="true" width="250">
        <f:facet name="header">
            <h:outputText value="Deseja Excluir este contato?" />
        </f:facet>
        <f:facet name="controls">
            <h:panelGroup>
                <h:graphicImage value="image/ico/close.png" id="img_close2" />
                <rich:componentControl for="modal_confirmacao" attachTo="img_close2" operation="hide" event="onclick"/>
            </h:panelGroup>
        </f:facet>
        <h:form id="form_confirmacao">
            <h:panelGrid columns="2">
                <a4j:commandButton value="Excluir" reRender="tbl_listaContatos, carregando" action="#{contatoManager.excluir}"
                    oncomplete="if (#{facesContext.maximumSeverity==null} #{rich:component('modal_confirmacao')}.hide();"
                />
                <a4j:commandButton value="Cancelar" onclick="#{rich:component('modal_confirmacao')}.hide(); return false;"/>
            </h:panelGrid>
        </h:form>   
    </rich:modalPanel>
   
    <a4j:status onstart="#{rich:component('modal_carregando')}.show()" onstop="#{rich:component('modal_carregando')}.hide()"/>
   
    <rich:modalPanel id="modal_carregando" autosized="true" width="32" height="32"  moveable="false" resizeable="false" >
        <h:graphicImage value="image/ico/loading.gif" />
    </rich:modalPanel>
   
</f:view>

Obrigado!


Sávio Canuto

unread,
Jan 22, 2011, 3:49:47 PM1/22/11
to jav...@googlegroups.com
Você não relatou qual seu problema direito. É porque o botão não está funcionando? Tipo... enviando a requisição? Já tentou acrescentar a propriedade de ajaxSingle="true" na tag dos botões?

Tenta aí!

Atenciosamente,

Sávio Canuto de Oliveira Sousa
João Pessoa - Paraíba - Brasil
------------------------------------------------------
Skype - savio.canuto
MSN - savio...@hotmail.com





--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

Flavio Cysne

unread,
Jan 24, 2011, 5:57:27 AM1/24/11
to jav...@googlegroups.com
Valbert,

    a expressão no oncomplete, se não estiver enganado, não está correta.

está assim:


oncomplete="if (#{facesContext.maximumSeverity==null} #{rich:component('modal_confirmacao')}.hide();"

mas deveria estar assim:

oncomplete="if (#{facesContext.maximumSeverity==null}){ #{rich:component('modal_confirmacao')}.hide();}"

Espero ter ajudado.
Flávio Cysne

Valbert Campos

unread,
Jan 24, 2011, 5:34:17 PM1/24/11
to jav...@googlegroups.com
Flávio,

Muito Obrigado! Era isto mesmo!

oncomplete="if (#{facesContext.maximumSeverity==null})#{rich:component('modal_editarContato')}.hide();"
Reply all
Reply to author
Forward
0 new messages