Como atualizar a pagina principal a partir de um popup.
Bom dia, Pessoal!
Estou com um problema aqui, trabalho com facelets e minhas paginas sao xhtml e estou usando umas funçoes
javascript para abrir um popup que contera uma tabela e onde os elementos que sao algumas informaçoes alem
de botoes que quando clicados vao para uma outra tabela na pagina principal. Acontece que eu ja consigo abrir
o popup com a tabela e os elementos, mas quando eu clico nos botoes a tabela da pagina principal nao é
atualizada automaticamente e eu ja sei que a lista(ou array) da tabela principal ja foi preenchida mas
a pagina principal nao é atualizada a nao ser que eu feche o popup e abra-o de novo a partir da janela
principal quando eu clico no botao de nome exibir, ai a tabela da pagina principal é atualizada com os dados
obtidos a partir do popup.
Em outras palavaras como atualizo,ou seja, faço um reloader da pagina principal a partir do popup e exiba a
tabela preenchida na pagina principal.Abaixo segue o codigo das minhas paginas.
<<<<<<<<<<<<<<<<<<<<<<< pagina principal= edit.xhtml >>>>>>>>>>>>>>>>>>>>>>>>>
<html 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:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<ui:composition template="/WEB-INF/template/refeicao_template.xhtml">
<ui:define name=“titulo”>#{prompt.anamnese}</ui:define>
<ui:define name=“descricao”>#{prompt.anamnese_cadastro}</ui:define>
<ui:define name="corpo">
<script language="Javascript" type="Text/Javascript">
novaJanela = null;
function abrirTabelaDeAlimentos()
{
leftPos = (screen.width-640)/2;
novaJanela = window.open("#{facesContext.externalContext.request.contextPath}/faces/refeicao/tabelaDeAlimentos.xhtml","novaJan",
"width=640,height=500,left="+leftPos+",top=150,scrollbars=yes");
//novaJanela.focus();
}
</script>
<h:form id="formularioTabela">
<center>
<h:column>
<b>
<h:outputText value=" Anamnese para o cliente: #{refeicaoActions.usuarioCorrente.nome}" />
</b>
</h:column>
</center>
<br />
<br />
<a4j:outputPanel id="painel" keepTransient="true">
<rich:panel style="width:99%">
<rich:column>
<h:commandButton id="botao" onclick="abrirTabelaDeAlimentos()"
value="Exibir Lista de Alimentos:" />
</rich:column>
<br />
<br />
<rich:dataTable id="lista" rows="7" align="center"
value="#{refeicaoActions.listaDeAlimentosCafe}" var="alimentoCafe" >
<f:facet name="header">
<rich:columnGroup>
<rich:column>
<h:outputText value="#{prompt.alimento_nome}" />
</rich:column>
</rich:columnGroup>
</f:facet>
<f:facet name="footer">
#{prompt.alimento_totaDeAlimentos} = #{refeicaoActions.listaDeAlimentosCafe.rowCount}
</f:facet>
<rich:column id="coluna">
<h:outputText id="nome" value="#{alimentoCafe.nome}" />
</rich:column>
</rich:dataTable>
<rich:datascroller align="center" for="lista" maxPages="10" id="scroller"/>
<br />
</rich:panel>
</a4j:outputPanel>
</h:form>
<a4j:keepAlive beanName="refeicaoActions" />
</ui:define>
</ui:composition>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Popup: tabelaDeAlimentos.xhtml >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<?xml version='1.0' encoding='ISO-8859-1' ?>
<ui:define name="corpo">
<script language="Javascript" type="Text/Javascript">
antigaJanela = null;
function atualizaJanelaEdit()
{
TEORICAMENTE, ESTA FUNCAO DEVERIA ATUALIZAR A PAGINA PRINCIPAL DE NOME: edit.xhtml
window.opener.document.forms['formularioTabela'];// .elements['formularioTabela:lista'];
//opener.document.forms['formularioTabela'].elements['formularioTabela:tipo'].value = "aaa";//.value = tipo + ' ' + logradouro;
//var focusControl = opener.document.forms['formularioTabela'].elements['formularioTabela:lista'];
//opener.document.forms['formularioTabela'].elements['formularioTabela:lista:coluna:nome'].value = "pepe";
//focusControl.focus();
//window.close();
// return false;
// return true;
}
</script>
<h:form id="formularioTable" >
<br/>
<div class="feature" align="center" >
<rich:dataTable width="400px" id="list" rows="20"
align="center"
value="#{refeicaoActions.listaDeAlimentos}"
var="alimento">
<f:facet name="header">
<rich:columnGroup>
<h:column>
<h:outputText value="Nome" />
</h:column>
<h:column>
<h:outputText value="Tipo" />
</h:column>
<h:column>
<h:outputText value="Adicionar" />
</h:column>
</rich:columnGroup>
</f:facet>
<h:column>
<h:outputText id="nome" value="#{alimento.nome}" />
</h:column>
<h:column>
<h:outputText id="tipo" value="#{alimento.tipoAlimento.tipoAlimento}" />
</h:column>
<h:column>
<h:commandButton id="botao" value="adicionar" action="#{refeicaoActions.adicionarNaLista}" onclick="atualizaJanelaEdit()"/>
</h:column>
</rich:dataTable>
<rich:datascroller align="center" for="list" maxPages="10" id="scroller"/>
</div>
<br/>
</h:form>
<a4j:keepAlive beanName="refeicaoActions" />
</ui:define>
</ui:composition>
</body>