5.5.9.1. Работа с компонентами Vaadin
Для работы непосредственно с компонентами Vaadin, реализующими интерфейсы библиотеки визуальных компонентов в блоке Web Client, воспользуйтесь следующими методами интерфейса Component
:
-
unwrap()
- получить Vaadin-компонент для данного CUBA-компонента. -
unwrapComposition()
- получить Vaadin-компонент, который является наиболее внешним контейнером в реализации данного CUBA-компонента. Для простых компонентов, например Button, этот метод возвращает тот же объект, что иunwrap()
-com.vaadin.ui.Button
. Для сложных компонентов, например Table,unwrap()
вернет соответствующий объектcom.vaadin.ui.Table
, аunwrapComposition()
- объектcom.vaadin.ui.VerticalLayout
, который содержит таблицу вместе с описанными вместе с ней ButtonsPanel иRowsCount
.
Методы принимают класс компонента, который нужно вернуть, например:
com.vaadin.ui.TextField vTextField = textField.unwrap(com.vaadin.ui.TextField.class);
Можно также использовать статические методы unwrap()
и getComposition()
класса WebComponentsHelper
, передавая в них CUBA-компонент.
Следует иметь в виду, что если экран расположен в модуле gui проекта, то в его контроллере можно работать только с обобщенными интерфейсами CUBA-компонентов. Чтобы использовать unwrap()
, нужно либо расположить весь экран в модуле web, либо воспользоваться механизмом компаньонов контроллеров.