Я новичок в jsf и использую Primefaces 4.0 для написания tabView. Я хочу что-то сделать в моем Backing Bean при нажатии на определенную вкладку, поэтому я попробовал это:
страница:
<p:tabView effect="fade" effectDuration="normal">
<p:ajax event="tabChange" listener="#{myConsoleBean.onTabChange}" update=":rightForm"/>
<p:tab title="My">
</p:tab>
<p:tab id="statTab" title="Stat">
</p:tab>
</p:tabView>
Поддерживающий компонент:
public void onTabChange(final TabChangeEvent event) {
TabView tv = (TabView) event.getComponent();
int activeTabIndex = tv.getActiveIndex();
System.out.println(activeTabIndex);
if(activeTabIndex==1)//Stat tab clicked
{
//do something here...
}
}
Все работает до сих пор, но Backing Bean по какой-то причине работает медленно, я хочу показать диалоговое окно, которое содержит индикатор выполнения, в то время как Backing Bean прогрессирует:
Диалог такой:
<p:dialog id="pBarDialog" header="Progressing..." widgetVar="dlg" modal="true" height="70" resizable="false" closable="false">
<h:outputText value="Please wait, we're generating your info..." />
<p:progressBar widgetVar="pbAjax" ajax="true" value="100" styleClass="animated"> </p:progressBar>
</p:dialog>
Итак, как я могу отобразить диалоговое окно, когда я нажимаю вкладку «Статистика»?