Для просмотра журнала изменений некоторого экземпляра сущности достаточно обычным способом загрузить в контейнеры данных экрана коллекцию экземпляров EntityLogItem
и ассоциированных с ними EntityLogAttr
, и создать визуальные компоненты, связанные с этими контейнерами.
В приведенном ниже примере показан фрагмент XML-дескриптора экрана сущности Customer
, который содержит вкладку с содержимым журнала сущности.
link:../../../../../source/features/entity_log.xml[role=include]
Теперь рассмотрим контроллер экрана редактирования сущности Customer
:
link:../../../../../source/features/entity_log_controller.java[role=include]
Обратите внимание, что на классе экрана нет аннотации @LoadDataBeforeShow
, так как загрузка вызывается явно.
-
− в методе
onBeforeShow
загружаются данные перед отображением экрана. -
− в обработчике
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>