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.
-