4.5.3. Пример создания и использования компонента
В данном разделе рассматривается пример создания и использования в проекте компонента приложения. Компонент будет предоставлять функциональность "Customer Management" и содержать сущность Customer
и соответствующие экраны UI. Приложение будет использовать сущность Customer
из компонента в качестве ссылки в собственной сущности Order
.
- Создание компонента Customer Management
-
-
Создайте новый проект в Studio и укажите следующие значения в окне New project:
-
Project name –
customers
-
Project namespace –
cust
-
Root package –
com.company.customers
-
-
Откройте экран Project Properties и установите значение поля Module prefix в
cust
. -
Создайте сущность
Customer
с атрибутомname
.Если компонент содержит персистентные классы, аннотированные
@MappedSuperclass
, убедитесь, что в этом же проекте есть их наследники, являющиеся сущностями (т.е. аннотированные@Entity
). В противном случае байткод таких базовых классов не будет необходимым образом модифицирован, и они не будут правильно работать в приложениях, использующих компонент. -
Сгенерируйте скрипты БД и создайте стандартные экраны для сущности
Customer
:cust_Customer.browse
иcust_Customer.edit
. -
Перейдите в дизайнер меню и переименуйте пункт меню
application-cust
вcustomerManagement
. Затем в файлеmessages.properties
главного пакета сообщений укажите новый заголовок для пункта менюcustomerManagement
. -
Сгенерируйте описатель компонента – файл
app-component.xml
, выбрав пункт CUBA > Advanced > App Component Descriptor в главном меню Studio. -
Проверьте функциональность Customer Management:
-
Выберите пункт меню CUBA > Create Database.
-
Запустите приложение: кликните на кнопку "debug" рядом с выбранной конфигурацией
CUBA Application
в главной панели инструментов. -
Откройте
http://localhost:8080/cust
в веб-браузере.
-
-
Установите компонент приложения в локальный Maven-репозиторий, выбрав пункт главного меню CUBA > Advanced > Install App Component.
-
- Создание приложения Sales
-
-
Создайте новый проект в Studio и укажите следующие значения в окне New project:
-
Project name –
sales
-
Project namespace –
sales
-
Root package –
com.company.sales
-
-
Откройте экран настроек Project Properties и включите флажок Use local Maven repository.
-
Добавьте компонент в проект как описано в разделе Установка аддона по координатам section of the Руководства пользователя Studio. Используйте Maven-координаты компонента Customer Management, например,
com.company.customers:cust-global:0.1-SNAPSHOT
. -
Создайте сущность
Order
с атрибутамиdate
иamount
. Добавьте атрибутcustomer
в виде many-to-one ассоциации с сущностьюCustomer
– она должна быть доступна в выпадающем списке Type. -
Сгенерируйте скрипты БД и создайте стандартные экраны для сущности
Order
. При создании экранов создайте представлениеorder-with-customer-view
, включающее атрибутcustomer
, и используйте его в экранах. -
Проверьте функциональность приложения:
-
Выберите пункт меню CUBA > Create Database.
-
Запустите приложение: кликните на кнопку "debug" рядом с выбранной конфигурацией
CUBA Application
в главной панели инструментов. -
Откройте
http://localhost:8080/app
в веб-браузере. Приложение должно содержать два пункта меню верхнего уровня: Customer Management и Application.
-
-
- Модификация компонента Customer Management
-
Предположим, что необходимо изменить функциональность компонента (добавить атрибут в сущность
Customer
) и пересобрать приложение для внесения этих изменений.-
Откройте проект
customers
в Studio. -
Откройте сущность
Customer
на редактирование и добавьте атрибутaddress
. Включите этот атрибут в экраны браузера и редактора. -
Сгенерируйте скрипты БД – будет создан новый скрипт обновления с изменением таблицы. Сохраните скрипты.
-
Проверьте изменения в компоненте:
-
Выберите пункт меню CUBA > Update Database.
-
Запустите приложение: кликните на кнопку "debug" рядом с выбранной конфигурацией
CUBA Application
в главной панели инструментов. -
Откройте
http://localhost:8080/cust
в веб-браузере.
-
-
Переустановите компонент в локальный Maven-репозиторий, выбрав пункт меню CUBA > Advanced > Install App Component.
-
Переключитесь в проект
sales
в Studio. -
Выберите пункт меню CUBA > Build Tasks > Clean.
-
Выберите пункт меню CUBA > Update Database – будет выполнен скрипт обновления из компонента Customer Management.
-
Запустите приложение: кликните на кнопку "debug" рядом с выбранной конфигурацией
CUBA Application
в главной панели инструментов. -
Откройте
http://localhost:8080/app
в веб-браузере – приложение теперь содержит сущностьCustomer
и соответствующие экраны с атрибутомaddress
.
-