AbstractWindow
является наследником
AbstractFrame
, и определяет следующие собственные методы:
-
ready()
- шаблонный метод, который можно имплементировать в контроллере для перехвата момента открытия экрана. Методready()
вызывается фреймворком после метода init() непосредственно перед показом экрана в главном окне приложения. -
validateAll()
- валидация экрана. Реализация по умолчанию вызывает методvalidate()
у всех компонентов экрана, реализующих интерфейсComponent.Validatable
, накапливает информацию об исключениях, и если таковые имеются, выводит соответствующее сообщение и возвращаетfalse
, иначе возвращаетtrue
.Данный метод следует переопределять только в том случае, если необходимо полностью заменить стандартную процедуру валидации экрана. Если же нужно только дополнить ее, достаточно определить специальный шаблонный метод
postValidate()
. -
postValidate()
- шаблонный метод, который можно имплементировать в контроллере для дополнительной валидации экрана. Получаемый методом объектValidationErrors
используется для добавления информации об ошибках валидации, которая будет отображена совместно с ошибками стандартной валидации. Например:private Pattern pattern = Pattern.compile("\\d"); @Override protected void postValidate(ValidationErrors errors) { if (getItem().getAddress().getCity() != null) { if (pattern.matcher(getItem().getAddress().getCity()).find()) { errors.add("City name can't contain digits"); } } }
-
close()
- закрыть данный экран.Метод принимает строковое значение, передаваемое далее в шаблонный метод
preClose()
и слушателямCloseListener
. Таким образом, заинтересованный код может получить информацию о причине закрытия экрана от кода, инициирующего закрытие. В частности, в экранах редактирования сущностей при закрытии экрана после коммита изменений рекомендуется использовать константуWindow.COMMIT_ACTION_ID
, без коммита изменений - константуWindow.CLOSE_ACTION_ID
.Если какой-либо из источников данных содержит несохраненные изменения, перед закрытием экрана будет выдано диалоговое окно с соответствующим предупреждением. Тип предупреждения можно выбрать с помощью свойства приложения cuba.gui.useSaveConfirmation .
Вариант метода
close()
с параметромforce = true
закрывает экран без вызоваpreClose()
и без предупреждения, независимо от наличия несохраненных изменений.Метод
close()
возвращаетtrue
, если экран был успешно закрыт, иfalse
- если закрытие было прервано. -
preClose()
- шаблонный метод, который можно имплементировать в контроллере для перехвата момента закрытия экрана. Метод получает строковое значение, указанное инициатором закрытия при вызове методаclose()
.Если метод
preClose()
возвращаетfalse
, то процесс закрытия экрана прерывается.