package hu.sch.web.wicket.components;
import hu.sch.domain.user.User;
import hu.sch.services.config.Configuration;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import javax.inject.Inject;
import org.apache.commons.io.FilenameUtils;
import org.apache.wicket.cdi.CdiContainer;
import org.apache.wicket.request.resource.DynamicImageResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author tomi
*/
public class ProfileImageResource extends DynamicImageResource {
private static final Logger logger = LoggerFactory.getLogger(ProfileImageResource.class);
private final User user;
@Inject
private Configuration config;
public ProfileImageResource(User user) {
CdiContainer.get().getNonContextualManager().inject(this);
this.user = user;
setFormat(extractImageFormat());
}
@Override
protected byte[] getImageData(Attributes atrbts) {
Path imagePath = Paths.get(user.getPhotoFullPath(config.getImageUploadConfig().getBasePath()));
if (imagePath.toFile().exists()) {
try {
return Files.readAllBytes(imagePath);
} catch (IOException ex) {
logger.warn("Could not open image file from " + user.getPhotoPath() + " location.", ex);
}
}
return new byte[0];
}
private String extractImageFormat() {
return FilenameUtils.getExtension(user.getPhotoPath());
}
}