Как правильно перехватить нажатие кнопки закрытия на странице вкладки?

У меня есть стандартный экземпляр qx.ui.tabview.TabView с некоторыми страницами, на которых включена кнопка закрытия. Я хотел бы перехватить нажатие на кнопку закрытия, чтобы отобразить диалоговое окно подтверждения, но я не могу понять, как это сделать qooxdoo.

В качестве обходного пути я обнаружил, что могу перезаписать tabview._onPageClose(), но, поскольку я не создаю подклассы TabView, это кажется хаком.

Может ли кто-нибудь дать мне подсказку?


person ozbob    schedule 22.01.2014    source источник


Ответы (2)


Подклассы - это путь, потому что переопределение метода без подклассов - это хак, как вы уже сказали.

person Martin Wittemann    schedule 22.01.2014

Я не пробовал, но вы также можете прикрепить обработчик событий к событию закрытия вкладки и попытаться отменить распространение на этапе всплытия, показывая вместо этого свое подтверждение. Затем, после OK в диалоге подтверждения, просто программно закройте вкладку.

Кроме того, страница tabview предоставляет свои дочерние элементы управления, а TabButton предоставляет свои дочерние элементы управления, в том числе кнопку закрытия. Вы можете попробовать добавить прослушиватель непосредственно к этой кнопке, в которой вы отмените распространение (Event.stop()) и отобразите свое подтверждение.

person user625488    schedule 22.01.2014