Я использую эти компоненты от PrimeFaces, чтобы показать, что отчет генерирует:
<p:ajaxStatus onstart="dlg.show();" onsuccess="dlg.hide();" />
<p:dialog modal="true" header="Creating Report" widgetVar="dlg" draggable="false" closable="false" >
<p:graphicImage value="/resources/images/ajaxloadingbar.gif" />
</p:dialog>
У меня нет никакого реального способа определить общее время, необходимое моим отчетам для компиляции и заполнения, поэтому я решил не использовать фактический индикатор выполнения, который иногда заполняется до завершения отчета.