4.5.9.1. Работа с компонентами Swing

Для работы непосредственно с компонентами Swing, реализующими интерфейсы библиотеки визуальных компонентов в блоке Desktop Client, необходимо воспользоваться классом DesktopComponentsHelper. Он имеет два статических метода для получения ссылок на компоненты Swing:

  • unwrap - получить Swing-компонент для данного CUBA-компонента.

  • getComposition - получить Swing-компонент, который является наиболее внешним контейнером в реализации данного CUBA-компонента. Для простых компонентов, например Button, этот метод возвращает тот же объект, что и unwrap() - javax.swing.JButton. Для сложных компонентов, например Table, unwrap() вернет соответсвующий объект org.jdesktop.swingx.JXTable, а getComposition() - объект javax.swing.JPanel, который содержит таблицу вместе с описанными вместе с ней ButtonsPanel и RowsCount.

Следует иметь в виду, что если экран расположен в модуле gui проекта, то в его контроллере можно работать только с обобщенными интерфейсами CUBA-компонентов. Чтобы использовать DesktopComponentsHelper.unwrap() нужно либо расположить весь экран в модуле desktop, либо воспользоваться механизмом компаньонов контроллеров.