ModalPanel

27 views
Skip to first unread message

Weksley Viana

unread,
May 5, 2008, 8:57:26 AM5/5/08
to jav...@googlegroups.com
Bem, estou com um probleminha. Na pagina do Richfaces tem uma advertencia para quando for usar o modalpanel nas versões atuais do IE, deve ser colocado o modalpanel em um form separado. So que ao fazer isso quando executo minhas ações do modalpanel agora não executam mais.

Listagem

<?xml version="1.0" encoding="ISO-8859-1" ?>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    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:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">

    <ui:composition template="/jsp/template.jspx">
        <ui:define name="conteudo">

            <a4j:form id="frmLista">
                <table width="100%" align="right">
                    <tr id="lStatus">
                        <td colspan="2" align="right"><a4j:status id="commonstatus"
                            startText="PROCESSANDO ..." /></td>
                    </tr>
                    <tr id="lTitulo">
                        <td class="lTitulo" width="90%">Assunto</td>
                        <td align="right" width="10%"><a4j:commandButton
                            style="float:right;"
                            oncomplete="javascript:Richfaces.showModalPanel('mpFormulario',{width:500, top:50})"
                            image="/imagens/icones/novo.png"
                            action="#{cadastroAssunto.limpar}" reRender="frmAssunto">
                            <rich:toolTip>
                                <span
                                    style="white-space: nowrapcolor :                             #000;">
                                Novo Assunto. </span>
                            </rich:toolTip>
                        </a4j:commandButton></td>
                    </tr>
                    <tr id="lMensagens">
                        <td colspan="2"><h:messages id="msLista" layout="table"
                            showDetail="true" showSummary="true" errorClass="MensagemErro"
                            fatalClass="MensagemFatal" infoClass="MensagemInfo"
                            warnClass="MensagemWarn" /></td>
                    </tr>
                    <tr id="lCorpo">
                        <td colspan="2"><a4j:region>
                            <rich:dataTable styleClass="centralizar" width="400"
                                id="lstAssunto" style="margin: 0 right;" rows="10"
                                columnClasses="col" value="#{cadastroAssunto.todos}"
                                var="decorador">

                                <f:facet name="header">
                                    <rich:columnGroup>
                                        <rich:column width="1%">
                                            <a4j:commandButton alt="Remover Todos" title="Remover Todos"
                                                action="#{ cadastroAssunto.excluirTodos }"
                                                image="/imagens/icones/cross.png"
                                                reRender="lstAssunto, frmAssunto, msLista">
                                                <rich:toolTip>
                                                    <span
                                                        style="white-space: nowrapcolor :                       #000;">
                                                    Clicando aqui será possivel excluir todos os registros
                                                    marcados. </span>
                                                </rich:toolTip>
                                            </a4j:commandButton>
                                        </rich:column>
                                        <rich:column width="60%">
                                            <h:outputText styleClass="headerText" value="Descrição" />
                                        </rich:column>

                                        <rich:column width="9%">
                                            <h:outputText styleClass="headerText" value="" />
                                        </rich:column>
                                    </rich:columnGroup>
                                </f:facet>
                                <rich:column style="text-align: center;">
                                    <h:selectBooleanCheckbox value="#{ decorador.remover }">
                                        <rich:toolTip>
                                            <span style="white-space: nowrap;"> Marcando varios
                                            será possivel a exclusão de varios registro de uma so vez.
                                            Basta marcar o registro desejados e clicar no X vermelho. </span>
                                        </rich:toolTip>
                                    </h:selectBooleanCheckbox>
                                </rich:column>

                                <rich:column filterBy="#{decorador.object.descricao}"
                                    filterEvent="onkeyup">
                                    <f:facet name="header">
                                        <h:outputText value="#{decorador.object.descricao}"></h:outputText>
                                    </f:facet>
                                    <h:outputText value="#{ decorador.object.descricao }" />
                                </rich:column>

                                <rich:column style="text-align: center;">
                                    <a4j:commandButton alt="Editar" title="Editar"
                                        image="/imagens/icones/edit.png"
                                        oncomplete="javascript:Richfaces.showModalPanel('mpFormulario',{width:500, top:50})"
                                        reRender="frmAssunto">
                                        <f:setPropertyActionListener value="#{decorador}"
                                            target="#{cadastroAssunto.decorador}" />
                                        <rich:toolTip>
                                            <span style="white-space: nowrap"> Clicando aqui este
                                            registro será excluido. </span>
                                        </rich:toolTip>
                                    </a4j:commandButton>
                                    <a4j:commandButton alt="Excluir" title="Excluir"
                                        action="#{ cadastroAssunto.excluir }"
                                        image="/imagens/icones/bin.png"
                                        reRender="frmLista">
                                        <f:setPropertyActionListener value="#{decorador}"
                                            target="#{cadastroAssunto.decorador}" />
                                        <rich:toolTip>
                                            <span style="white-space: nowrap"> Clicando aqui este
                                            registro pode ser editado. </span>
                                        </rich:toolTip>
                                    </a4j:commandButton>
                                </rich:column>
                            </rich:dataTable>
                        </a4j:region><rich:spacer height="10" /> <rich:datascroller for="lstAssunto"
                            maxPages="10" align="center" /></td>
                    </tr>

                </table>
            </a4j:form>

            <!-- Listagem -->
            <rich:spacer />

            <a4j:form>
                <ui:include src="formulario.jspx" />
            </a4j:form>
        </ui:define>
    </ui:composition>
</jsp:root>

modalpanel - formulario

<?xml version="1.0" encoding="ISO-8859-1" ?>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    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:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">

    <ui:composition>

        <rich:modalPanel id="mpFormulario" minHeight="100" minWidth="250"
            height="300" width="300" zindex="2000">

            <f:facet name="header">
                <h:outputText value="Cadastro de Assunto" />
            </f:facet>
            <f:facet name="controls">
                <a4j:commandLink reRender="lstAssunto">
                    <h:graphicImage border="0" value="/imagens/icones/cross.png"
                        style="cursor:pointer"
                        onclick="Richfaces.hideModalPanel('mpFormulario')" />
                </a4j:commandLink>
            </f:facet>

            <a4j:region>
                <a4j:form id="frmAssunto">
                    <h:messages id="msFormulario" layout="table" showDetail="true" showSummary="true" errorClass="MensagemErro" fatalClass="MensagemFatal"
                                        infoClass="MensagemInfo" warnClass="MensagemWarn"/>
                   
                    <!-- Cadastro -->
                    <h:panelGrid id="pgAssunto" width="450" columns="2"
                        footerClass="align: center;">
                        <h:outputLabel id="lbNome" style="width:10px" value="Nome:" />
                        <h:inputText id="txtDescricao"
                            value="#{cadastroAssunto.decorador.object.descricao}" size="60" />                       
                    </h:panelGrid>
                    <rich:spacer id="spc1" height="30" />
                    <h:inputHidden id="ihId"
                        value="#{ cadastroAssunto.decorador.object.id }" />
                    <a4j:commandButton id="cmdSalvar" value="Salvar"
                        action="#{ cadastroAssunto.cadastrar }"
                        reRender="lstAssunto, frmAssunto, msFormulario">
                        <rich:toolTip id="tt1">
                            <span style="white-space: nowrap"> Clicando neste botão
                            você estará realizando o cadastro da Equipe. </span>
                        </rich:toolTip>
                    </a4j:commandButton>
                    <a4j:commandButton id="cmdLimpar" value="Limpar"
                        action="#{ cadastroAssunto.limpar }"
                        reRender="lstAssunto, frmAssunto">
                        <rich:toolTip id="tt2">
                            <span style="white-space: nowrap"> Clicando neste botão
                            você limpará o formulario de cadastro. </span>
                        </rich:toolTip>
                    </a4j:commandButton>

                </a4j:form>
            </a4j:region>
            <!-- fim do Cadastrar -->
        </rich:modalPanel>
    </ui:composition>
</jsp:root>

Wandrey

unread,
May 5, 2008, 9:35:50 AM5/5/08
to javasf: JavaServer Faces International Group
Segue uma página de teste simples, por favor alterar a action do mb;
Infelizmente não temos <code> </code> aqui.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
<ui:composition template="/template/menu.xhtml">

<head>
<!--
<ui:define name="css">

</ui:define>
-->
</head>

<body>


<ui:define name="contentTitle">
<!-- <strong> <h:outputText value="Cadastrar Documento"
rendered="#{empty documentoMB.entidade.id}" /> <h:outputText
value="Alterar Documento"
rendered="#{! empty documentoMB.entidade.id}" /> </strong>
-->
</ui:define>

<ui:define name="content">

<h:form id="form">
<div class="error_box"><h:messages layout="list"
globalOnly="true" showDetail="true" styleClass="messages">
</h:messages></div>
<h:panelGrid columns="1">
<h:outputText value="testando o modal panel"></h:outputText>

<a
href="javascript:Richfaces.showModalPanel('mp', {top:'10px',
left:'10px', height:'400'});">Visualizar</a>

<a href="javascript:Richfaces.showModalPanel('mp',{left:'auto',
top:'auto'})">Visualizar 2
</a>
</h:panelGrid>
</h:form>
<rich:modalPanel id="mp" minHeight="200" minWidth="450"

height="200" width="500" zindex="2000">

<f:facet name="header">

<h:panelGroup>

<h:outputText value="Título"></h:outputText>

</h:panelGroup>

</f:facet>

<f:facet name="controls">

<h:panelGroup>

<h:graphicImage value="/images/icons/close_view.gif"
style="cursor:pointer"
id="hidelink" />

<rich:componentControl for="mp" attachTo="hidelink"
operation="hide" event="onclick" />

</h:panelGroup>

</f:facet>

<h:outputText value="Texto comum">
</h:outputText>

<br />


<br />
<h:form>
<h:panelGrid columns="1">
<h:outputText value="Clicar no (X) para fechar">
</h:outputText>

<h:commandButton value="Testar ação"
action="#{documentoMB.testarAcao}" />
</h:panelGrid>
</h:form>

</rich:modalPanel>
</ui:define>



</body>
</ui:composition>
</html>

On 5 maio, 08:57, "Weksley Viana" <jogadorbas...@gmail.com> wrote:
> Bem, estou com um probleminha. Na pagina do Richfaces tem uma advertencia
> para quando for usar o modalpanel nas versões atuais do IE, deve ser
> colocado o modalpanel em um form separado. So que ao fazer isso quando
> executo minhas ações do modalpanel agora não executam mais.
>
> *Listagem*
> *modalpanel - formulario
>
> *<?xml version="1.0" encoding="ISO-8859-1" ?>

Weksley Viana

unread,
May 5, 2008, 10:11:07 AM5/5/08
to jav...@googlegroups.com
Wandrey,

O modalpanel não precisa esta dentro de um a4j:form???

2008/5/5 Wandrey <wan...@gmail.com>:

Weksley Viana

unread,
May 5, 2008, 10:12:49 AM5/5/08
to jav...@googlegroups.com
Aqui no Firefox funciona, mas no IE, quando chamo o ModalPanel ele trava o IE, estou trabalahndo com o IE7.

2008/5/5 Weksley Viana <jogado...@gmail.com>:

Wandrey

unread,
May 6, 2008, 11:07:03 PM5/6/08
to javasf: JavaServer Faces International Group
Por usar a tag rich, no caso rich:modalPanel, já adiciona uma certa
"ajaxidade", mas no exemplo apresentado ele chamava um action e
poderia ir para outra página ou repetir com a msg de erro, caso queira
usar ajax, como um actionListener
Exemplo prático com h:form, infelizemente não tem <code>, sugiro
usarmos o wiki do google code para facilitar apresentação de exemplos
de códigos...
<f:view>
<h:form id="formularioCadastro">
<a4j:status id="status" >
<f:facet name="start">
<h:graphicImage value="/images/icons/refresh_nav.gif" />
</f:facet>
</a4j:status>
<rich:panel id="cadastro" header="Cadastro de X">
<a4j:commandButton value="Salvar"
actionListener="#{entidadeAjaxMB.salvar}"
reRender="cadastro,formularioLista" />

<h:messages id="mensagem" errorStyle="color:red"
infoStyle="color:#5ac67e" layout="list" />
</rich:panel>

</h:form>

.... ...
...
</f:view>
On 5 maio, 10:12, "Weksley Viana" <jogadorbas...@gmail.com> wrote:
> Aqui no Firefox funciona, mas no IE, quando chamo o ModalPanel ele trava o
> IE, estou trabalahndo com o IE7.
>
> 2008/5/5 Weksley Viana <jogadorbas...@gmail.com>:
>
> > Wandrey,
>
> > O modalpanel não precisa esta dentro de um a4j:form???
>
> > 2008/5/5 Wandrey <wand...@gmail.com>:
> ...
>
> mais »

Wandrey

unread,
May 6, 2008, 11:08:56 PM5/6/08
to javasf: JavaServer Faces International Group
IE7, se não funcionar, com o richfaces 3.2.1, por favor faça um
simples projeto de exemplo war e poste o bug.
Não uso IE7, não posso confirmar, mas já tem bug aberto para o IE7 e
lentidão no Mozilla.

On 5 maio, 10:12, "Weksley Viana" <jogadorbas...@gmail.com> wrote:
> Aqui no Firefox funciona, mas no IE, quando chamo o ModalPanel ele trava o
> IE, estou trabalahndo com o IE7.
>
> 2008/5/5 Weksley Viana <jogadorbas...@gmail.com>:
>
> > Wandrey,
>
> > O modalpanel não precisa esta dentro de um a4j:form???
>
> > 2008/5/5 Wandrey <wand...@gmail.com>:
> ...
>
> mais »

itamar araujo do prado

unread,
May 9, 2008, 2:35:54 PM5/9/08
to jav...@googlegroups.com
Wandrey,
 
Estou iniciando no JSF e quando clico numa aba do panel
ele abre outra página, para acertar isso tenho que
usar o reRender="cadastro,formularioLista" / ? ? ??
 
 
Obrigado
Itamar Prado

 
Em 07/05/08, Wandrey <wan...@gmail.com> escreveu:

Wandrey

unread,
May 10, 2008, 7:51:59 PM5/10/08
to javasf: JavaServer Faces International Group
No caso do reRender="cadastro,formularioLista", é um caso específico e
não tem nada ver com o tab panel, para determinado padrão de caso de
uso, o que esta linha faz é apenas executar um evento, disparado pelo
actionListener, que esta conectado a uma classe de controle no caso um
managed bean, que invoca um operação na classe de serviço, que invoca
operações na camada dao. Muita coisa pode dar errado, existem exceções
de varios níveis(layer, camadas ou o que usar)... Resumindo, no
reRender o controle apresenta o resultado da operação atualizando a
view, isto é, se tudo estiver mensagem possitiva, caso contrário
mensagens de erros. Outras operações são realizadas, o reRender é
apenas para atualizar a view, pois as devidas mensagens estarão em um
h:messages da vida. Paralelamente outros serviços ortogonais são
invococados, como segurança(autênticação e autorização), monitoramento
de desempenho e falhas, logs diversos.
Quanto ao Tab Panel, sugiro ler o user guide no site do richfaces, na
parte de componentes, como utilizar o tabpanel. E prioritário que
conheça o cliclo de vida de requisições jsf e após isto o ciclo de
vida da biblioteca richfaces, que utiliza ajax para alguns
componentes; O problema citado é comum no desenvovlimento inicial sem
leitura do guia, o que ocorre frequentemente, dataTable sendo chamado
n vezes, mensagens sendo apresentadas n vezes, e por ai vai, botões e
etc;
Caso seu problema seja navegação, vide faces-config.xml, seu panel
pode estar invocando um action que têm uma navegação mapeada para
outra view;

On 9 maio, 14:35, "itamar araujo do prado" <itamarpr...@ig.com.br>
wrote:
> Wandrey,
>
> Estou iniciando no JSF e quando clico numa aba do panel
> ele abre outra página, para acertar isso tenho que
> usar o reRender="cadastro,formularioLista" / ? ? ??
>
> Obrigado
> Itamar Prado
>
> Em 07/05/08, Wandrey <wand...@gmail.com> escreveu:
> ...
>
> mais »
Reply all
Reply to author
Forward
0 new messages