Primefaces <p:poll> executando chamandas mais de um método para execução

0 respostas
primefacesjava
J

Estou com um problema referente ao primeFaces. Tenho uma aplicação onde uma pagina tem varias escutas Observable. Como por exemplo:

<h:form id="idFormDebate">
	<p:poll id="updateEscutarPainelDebate" interval="1"
		listener="#{tela.escutarPaginaPainelDebate()}" process="idFormDebate"/>
</h:form>

O método

public void escutarPaginaPainelDebate();

É chamado corretamente a cada 1 interval, mas por algum motivo junto ao mesmo é invocado outro método qual não deveria ser chamado.
Com a seguinte assinatura:

public boolean isExibirDebate()

Fiz varias analises e não consegui encontrar o motivo do problema.

Segue partes do código para analise.

  1. O primeiro HTML chamado é a tela que contem esse codigo, contendo o metodo
public boolean mostrarAgenda();

qual faz a chamada do método

public boolean isExibirDebate()

Nessa tela temos varios Poll de escuta para atender a chamada do método mostrarAgenda(). Mas os métodos que não fazem uma direta ao isExibirDebate() mas sim um update no id do

<p:outputPanel id="idAgendaExibir">

public void escutarPaginaPainelPresentes() {
	if (ControladorasEscuta.escutarPainelPresentes != 0) {
		RequestContext context = RequestContext.getCurrentInstance();
		context.update("idAgendaExibir");
		context.update("idAtualizarPresentes");
		ControladorasEscuta.escutarPainelPresentes = 0;
	}
}
```
Após fazer todo tratamento de exibição da tela principal eu permito que a tela 
```
<ui:include src="/WEB-INF/reuniao/painel-agenda.xhtml" />
```
Seja exibida  ou melhor, inclusa mais informações na tela principal. Mas quando eu chama o mesmo por algum motivo 
os dois poll que tenho na tela painel-agenda.xhtml 
```
<h:form id="idFormDebate">
	<p:poll id="updateEscutarPainelDebate" interval="1"
			listener="#{tela.escutarPaginaPainelDebate()}" process="idFormDebate"/>
</h:form>

<h:form id="formUpdadeteTableTiemsPoll">
	<p:poll id="updateTableTimesPoll" interval="1"
	update="idTableParticipantes,idDebateTimeTr"  process="formUpdadeteTableTiemsPoll"/>
</h:form>
```
Por algum motivo alem das atualizaçoes que tem que ser feita o metodo .
```
public boolean isExibirDebate()
```
É chamado varias vezes sem parar, sendo que não faço chamada dele.

```
Tela principal
<p:outputPanel id="idAgendaExibir">
	<p:outputPanel rendered="#{tela.mostrarAgenda()}">
		<div class="col-md-7">
			<ui:include src="/WEB-INF/reuniao/painel-agenda.xhtml" />
		</div>

			<div class="row">
			      <div class="col-md-5">
				     <ui:include src="/WEB-INF/reuniao/painel-presentes.xhtml" />
			      </div>
	        	</div>
	        </p:outputPanel>
</p:outputPanel>
```

Obrigado, tentei explicar da melhor forma, existe muita informação para explicar, mas as vezes não estou analisando algo por falta e conhecimento.
Criado 17 de janeiro de 2017
Respostas 0
Participantes 1