package org.orienteer.core.component.property; import org.apache.tika.Tika; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.panel.EmptyPanel; import org.apache.wicket.markup.html.panel.GenericPanel; import org.apache.wicket.model.IModel; import org.apache.wicket.request.resource.ByteArrayResource; /** * {@link GenericPanel} to view binary images * * @param <V> the type of the panel's model object */ public class ImageViewPanel<V> extends GenericPanel<V> { public ImageViewPanel(String id, IModel<V> valueModel) { super(id, valueModel); byte[] imageBytes = (byte[]) getModelObject(); if (imageBytes != null) { String mimeType = new Tika().detect(imageBytes); ByteArrayResource byteArrayResource = new ByteArrayResource(mimeType, imageBytes); add(new Image("image", byteArrayResource)); } else { add(new EmptyPanel("image")); } } }