package com.constellio.app.ui.framework.components.viewers;
import java.util.Arrays;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import com.constellio.app.modules.rm.ui.entities.DocumentVO;
import com.constellio.app.modules.rm.wrappers.Document;
import com.constellio.app.ui.entities.ContentVersionVO;
import com.constellio.app.ui.entities.RecordVO;
import com.constellio.app.ui.framework.components.viewers.audio.AudioViewer;
import com.constellio.app.ui.framework.components.viewers.document.DocumentViewer;
import com.constellio.app.ui.framework.components.viewers.image.ImageViewer;
import com.constellio.app.ui.framework.components.viewers.video.VideoViewer;
import com.vaadin.ui.Component;
import com.vaadin.ui.CustomComponent;
public class ContentViewer extends CustomComponent {
private Component viewerComponent;
public ContentViewer(RecordVO recordVO, String metadataCode, ContentVersionVO contentVersionVO) {
if (contentVersionVO != null) {
String fileName = contentVersionVO.getFileName();
String extension = StringUtils.lowerCase(FilenameUtils.getExtension(fileName));
if (Arrays.asList(ImageViewer.SUPPORTED_EXTENSIONS).contains(extension)) {
ImageViewer imageViewer = new ImageViewer(recordVO, Document.CONTENT, contentVersionVO);
viewerComponent = imageViewer;
} else if (Arrays.asList(AudioViewer.SUPPORTED_EXTENSIONS).contains(extension)) {
AudioViewer audioViewer = new AudioViewer(contentVersionVO);
viewerComponent = audioViewer;
} else if (Arrays.asList(VideoViewer.SUPPORTED_EXTENSIONS).contains(extension)) {
VideoViewer videoViewer = new VideoViewer(contentVersionVO);
viewerComponent = videoViewer;
} else if (DocumentViewer.isSupported(fileName)) {
DocumentViewer documentViewer;
if (recordVO instanceof DocumentVO) {
documentViewer = new DocumentViewer(recordVO, Document.CONTENT, contentVersionVO);
} else {
documentViewer = null;
}
viewerComponent = documentViewer;
}
}
if (viewerComponent == null) {
setVisible(false);
} else {
setCompositionRoot(viewerComponent);
}
}
}