Прошу прощения, если где-то прямо указано как - я не нашел.
В БД хранится картинка превью, определенная в БД и сущности как byte[]. Надо чтобы можно было отобразить ее в DataGrid экрана просмотра соответствующей коллекции.
Пробовал с ImageRenderer, но, я так понял, он в виде аргумента принимает только путь к изображению. Возможно, нужно генерировать столбец с компонентом Image. Но я пока не знаю, как это сделать и примеров не нашел. Помогите, пожалуйста.
Документация по генерации колонок
Пример генерируемой колонки которая возвращает компонент
В компонент Image
можно передать byte
через StreamResource
как-то так:
image.setSource(io.jmix.ui.component.StreamResource.class)
.setStreamSupplier(() -> new ByteArrayInputStream(bytes))
Спасибо, получилось через поток, как Вы советовали:
image.setSource(io.jmix.ui.component.StreamResource.class)
.setStreamSupplier(() -> new ByteArrayInputStream(bytes))
Еще пример из Самоучителя:
Маленькое уточнение. Сейчас студио в арументы прописывает эвент, а не сущность, в отличие от примера, то есть надо получить экземпляр сущности через эвент.getItem(). Наверно документашку поправить надо. А в целом, заработало. Для случаев с Null значением в поле сделал обработчик, с подстановкой NoImage изображения через Classpath.
Спасибо за неравнодушие, но в данном случае в доке все правильно - там в примере используется компонент GroupTable
и у него в отличие от DataGrid
генератор колонки именно такой - принимает сущность.