3.5.18. Инфраструктура Generic UI

В данном разделе рассмотрены основные классы инфраструктуры Generic UI, которые могут быть расширены в приложении.

WebClientInfrastructure
Рисунок 21. Классы инфраструктуры Generic UI
  • AppUI - класс, унаследованный от com.vaadin.ui.UI. Экземпляр данного класса соответствует одной открытой вкладке веб браузера. Содержит ссылку на реализацию интерфейса RootWindow - это может быть либо окно логина, либо главное окно приложения, в зависимости от состояния подключения. Ссылку на AppUI можно получить вызовом статического метода AppUI.getCurrent().

    Для кастомизации функциональности AppUI в проекте, создайте класс, расширяющий AppUI в модуле web и зарегистрируйте его в web-spring.xml с идентификатором cuba_AppUI и prototype scope, например:

    <bean id="cuba_AppUI" class="com.company.sample.web.MyAppUI" scope="prototype"/>
  • Connection - интерфейс, обеспечивающий функциональность подключения к среднему слою и хранящий пользовательскую сессию UserSession. Стандартной реализацией этого интерфейса является класс ConnectionImpl.

    Для кастомизации функциональности Connection в проекте, создайте класс, расширяющий ConnectionImpl в модуле web и зарегистрируйте его в web-spring.xml с идентификатором cuba_Connection и vaadin scope, например:

    <bean id="cuba_Connection" class="com.company.sample.web.MyConnection" scope="vaadin"/>
  • ExceptionHandlers - содержит коллекцию обработчиков исключений клиентского уровня.

  • App позволяет получить ссылки на Connection, ExceptionHandlers и другие объекты инфраструктуры. Экземпляр App существует в единственном экземпляре для данной HTTP-сессии пользователя. Ссылку на App можно получить вызовом статического метода App.getInstance().

    Если необходимо кастомизировать функциональность App в проекте, создайте класс, расширяющий DefaultApp в модуле web и зарегистрируйте его в web-spring.xml с идентификатором cuba_App и vaadin scope, например:

    <bean name="cuba_App" class="com.company.sample.web.MyApp" scope="vaadin"/>