Для отображения сохраненных для некоторой сущности снимков можно использовать фрейм com/haulmont/cuba/gui/app/core/entitydiff/diff-view.xml
, например:
<iframe id="diffFrame" src="/com/haulmont/cuba/gui/app/core/entitydiff/diff-view.xml" width="100%" height="100%"/>
В контроллере экрана редактирования необходимо вызвать загрузку снимков во фрейм:
public class CustomerEditor extends AbstractEditor<Customer> { @Inject protected EntityDiffViewer diffFrame; ... @Override protected void postInit() { if (!PersistenceHelper.isNew(getItem())) { diffFrame.loadVersions(getItem()); } } }
Фрейм diff-view.xml
отображает список сохраненных для данной сущности снимков с возможностью их сравнения. Для каждого снимка указывается пользователь,
дата и время сохранения. При выборе из списка некоторого снимка сущности в таблице сравнения показываются изменения данных
по сравнению с предыдущим снимком. В первом снимке измененными считаются все атрибуты. Если выбрано два снимка, то в таблицу
выводится результат их сравнения.
В таблице сравнения отображаются имена атрибутов и их новые значения, при выборе строки показывается детальная информация
по изменениям атрибута в двух снимках. Ссылочные поля выводятся в соответствии с их шаблоном
@NamePattern
. При сравнении коллекций добавленные и удаленные элементы выделяются цветом (зеленый, красный), а элементы с измененными
атрибутами остаются без выделения. Изменение позиций элементов не учитывается.