Bom dia
preciso de ajuda para mostrar uma mensagem de espera quando estiver carregando um PDF dinâmico via primefaces <p:media>
Segue como está no momento.
<p:media width="100%" height="480" player="pdf" view="Mostrando..."
value="../sistemaweb/versao_pdf?param1=#{bean.select.id}&param2=#{bean.select.value}&param3=#{bean.login.value2}&param4=#{bean.select.flag}" >
</p:media>
O sistema demora uns segundos para carregar… por isso gostaria de colocar um progressbar ou alguma mensagem de aguarde, mas não achei nada pesquisando na internet.
valeu
Mike
Janeiro 12, 2019, 2:35pm
#2
Você pode usar o ajaxStatus do PrimeFaces, é muito fácil de ser implementado
Assim que uma requisição for feita, ele vai abrir um dialog que possui uma barra de carregamento e o usuário vai aguardar/receber o feedback que o sistema esta processando algo. Essa barra de carregamento é o gif do graphicImage
<p:ajaxStatus onstart="PF('statusDialog').show()" onsuccess="PF('statusDialog').hide()" />
<p:dialog widgetVar="statusDialog" modal="true" draggable="false" closable="false" resizable="false" showHeader="false">
<p:graphicImage library="images" name="ajax-loading-bar.gif" />
</p:dialog>
Olha ele funcionando no showcase:
https://www.primefaces.org/showcase/ui/ajax/status.xhtml
Estou chamando assim:
<p:commandButton onclick="PF('tabview').select(1)"
update="msg,:tabview:f2:painelExtrato2" title="Abrir">
<f:setPropertyActionListener value="#{d}"
target="#{bean.select}"/>
</p:commandButton>
mas o ajaxStatus não está sendo chamado…
o que posso mudar ali para ele ser chamado?
valeu
Me expressei mal.
Quando clico commandButton:
<p:commandButton onclick="PF('tabview').select(1)"
update="msg,:tabview:f2:painelExtrato2" title="Abrir">
<f:setPropertyActionListener value="#{d}"
target="#{bean.select}"/>
</p:commandButton>
O sistema carrega uma aba de um TabView que contem esse p:media.
<p:media width="100%" height="480" player="pdf" view="Mostrando..."
value="../sistemaweb/versao_pdf?param1=#{bean.select.id}&param2=#{bean.select.value}&param3=#{bean.login.value2}&param4=#{bean.select.flag}" >
</p:media>
O ajaxStatus é chamado, mas ele fecha no momento em que o tab do TabView é chamado.
Ai esse Tab fica em branco até o carregamento do <p:mendia> finalizar e mostrar o PDF.
É esse carregamento que gostaria de mostrar alguma coisa para o usuário.