null

ace:dialog closeListener

После моего предыдущего поста про переход от ice:panelPopup к ace:dialog мне задавали вопросы, как в случае необходимости можно отследить закрытие всплывающего окна.

Действительно, раньше отображение высплывающего окна управлялось атрибутами visible и endered, задаваемыми в переменной управляемого бина, поэтому его закрытие можно было  обработать и вызвать метод, выполняющий необходимые для этого действия (например, очистить все поля или освободить какие-либо ресурсы) очевидным образом - например, в сеттере. Теперь, когда управление окном осуществляется на стороне клиента при помощи JavaScript, используется ace:ajax. В *.xhtml нужно добавить:

<ace:dialog id="dialog"
                header="..."
                widgetVar="popupDialog"
                closable="true"
                modal="true"
                draggable="false"
                showEffect="clip"
                hideEffect="fade" >
                <ace:ajax event="close" listener="#bean.closeEventListener}"/> 
</ace:dialog>
                 

Код управляемого бина:

...
public void closeEventListener(CloseEvent event) {
    System.out.println("Handle popup close event here.");
}
...