Skip to content

Latest commit

 

History

History
40 lines (29 loc) · 2.53 KB

File metadata and controls

40 lines (29 loc) · 2.53 KB
Отображение журнала

Для просмотра журнала изменений некоторого экземпляра сущности достаточно обычным способом загрузить в контейнеры данных экрана коллекцию экземпляров EntityLogItem и ассоциированных с ними EntityLogAttr, и создать визуальные компоненты, связанные с этими контейнерами.

В приведенном ниже примере показан фрагмент XML-дескриптора экрана сущности Customer, который содержит вкладку с содержимым журнала сущности.

Фрагмент XML-дескриптора customer-edit.xml
link:../../../../../source/features/entity_log.xml[role=include]

Теперь рассмотрим контроллер экрана редактирования сущности Customer:

Фрагмент контроллера экрана редактирования
link:../../../../../source/features/entity_log_controller.java[role=include]

Обратите внимание, что на классе экрана нет аннотации @LoadDataBeforeShow, так как загрузка вызывается явно.

  1. − в методе onBeforeShow загружаются данные перед отображением экрана.

  2. − в обработчике ItemChangeEvent родительского контейнера customerDc передаётся параметр в зависимый загрузчик, и затем загружаются данные.

Для отображения локализованных значений журналируемых атрибутов эти атрибуты должны содержать аннотацию @LocalizedValue. При ее наличии механизм журналирования заполняет поле EntityLogAttr.messagesPack, и таблица, отображающая значения атрибутов из примера выше, может использовать колонку locValue вместо value:

<table id="attrTable" width="100%" height="200px" dataContainer="logAttrDc">
  <columns>
      <column id="name"/>
      <column id="locValue"/>
  </columns>
</table>