5.5.10.1. Работа с компонентами Swing
Для работы непосредственно с компонентами Swing, реализующими интерфейсы библиотеки визуальных компонентов в блоке Desktop Client, воспользуйтесь следующими методами интерфейса Component:
-
unwrap()- получить Swing-компонент для данного CUBA-компонента. -
unwrapComposition()- получить Swing-компонент, который является наиболее внешним контейнером в реализации данного CUBA-компонента. Для простых компонентов, например Button, этот метод возвращает тот же объект, что иunwrap()-javax.swing.JButton. Для сложных компонентов, например Table,unwrap()вернет соответствующий объектorg.jdesktop.swingx.JXTable, аunwrapComposition()- объектjavax.swing.JPanel, который содержит таблицу вместе с описанными вместе с ней ButtonsPanel иRowsCount.
Методы принимают класс компонента, который нужно вернуть, например:
javax.swing.JButton jButton = button.unwrap(javax.swing.JButton.class);
Можно также использовать статические методы unwrap() и getComposition() класса DesktopComponentsHelper, передавая в них CUBA-компонент.
Следует иметь в виду, что если экран расположен в модуле gui проекта, то в его контроллере можно работать только с обобщенными интерфейсами CUBA-компонентов. Чтобы использовать unwrap(), нужно либо расположить весь экран в модуле desktop, либо воспользоваться механизмом компаньонов контроллеров.