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"));
}
}
}