GWT Popuppanel отменить процесс закрытия на основе условия
У меня есть PopupPanel
private PopupPanel simplePopup;
В приложении откроется всплывающее окно. Когда пользователь нажимает за его пределами, всплывающее окно закрывается. Это поведение по умолчанию. Я хотел бы переопределить это поведение и НЕ закрывать всплывающее окно, если выполняется условие. Я имею в виду что-то вроде этого:
simplePopup.addCloseHandler(new CloseHandler<PopupPanel>() {
@Override
public void onClose(CloseEvent<PopupPanel> arg0) {
if (conditionIsMet) {
// do something here to avoid closing the popup
}
}
});
Но я не знаю, как предотвратить закрытие всплывающего окна. Я прочитал кое-что о onPreviewNativeEvent, но я не знаю, как его использовать.
1 ответ
Решение
Вам нужно отключить флаг autoHide. Поведение скрытия по умолчанию связано с этим флагом. Вы можете отключить его с помощью следующего фрагмента кода.
simplePopup.setAutoHideEnabled( false );
Вы также можете отключить его через конструктор.
Вы можете управлять скрытием на основе некоторого условия, переопределив метод скрытия как
simplepopup = new PopupPanel( false)
{
@Override
public void hide( boolean autoClosed )
{
if( condition met )
{
super.hide();
}
}
};