001
014
015 package com.liferay.portal.editor.fckeditor.receiver.impl;
016
017 import com.liferay.portal.editor.fckeditor.command.CommandArgument;
018 import com.liferay.portal.kernel.language.LanguageUtil;
019 import com.liferay.portal.kernel.repository.model.FileEntry;
020 import com.liferay.portal.kernel.repository.model.Folder;
021 import com.liferay.portal.kernel.servlet.ServletResponseConstants;
022 import com.liferay.portal.kernel.util.ArrayUtil;
023 import com.liferay.portal.kernel.xuggler.XugglerUtil;
024 import com.liferay.portlet.documentlibrary.service.DLAppServiceUtil;
025 import com.liferay.portlet.documentlibrary.util.VideoProcessorUtil;
026
027 import java.io.InputStream;
028
029 import java.util.ArrayList;
030 import java.util.List;
031 import java.util.Set;
032
033 import org.w3c.dom.Document;
034 import org.w3c.dom.Element;
035
036
040 public class VideoCommandReceiver extends DocumentCommandReceiver {
041
042 @Override
043 protected String fileUpload(
044 CommandArgument commandArgument, String fileName,
045 InputStream inputStream, String contentType, long size) {
046
047 if (!XugglerUtil.isEnabled()) {
048 return String.valueOf(
049 ServletResponseConstants.SC_VIDEO_PREVIEW_DISABLED_EXCEPTION);
050 }
051
052 return super.fileUpload(
053 commandArgument, fileName, inputStream, contentType, size);
054 }
055
056 @Override
057 protected Element getFileElement(
058 CommandArgument commandArgument, Element fileElement,
059 FileEntry fileEntry)
060 throws Exception {
061
062 fileElement = super.getFileElement(
063 commandArgument, fileElement, fileEntry);
064
065 if (!VideoProcessorUtil.hasVideo(fileEntry.getFileVersion())) {
066 fileElement.setAttribute(
067 "errorMessage",
068 LanguageUtil.get(
069 commandArgument.getLocale(),
070 "the-video-preview-is-not-yet-ready.-please-try-again-" +
071 "later"));
072 }
073
074 return fileElement;
075 }
076
077 @Override
078 protected List<Element> getFileElements(
079 CommandArgument commandArgument, Document document, Folder folder)
080 throws Exception {
081
082 List<Element> fileElements = new ArrayList<Element>();
083
084 List<FileEntry> fileEntries = null;
085
086 String[] videoMimeTypes = getVideoMimeTypes();
087
088 if (videoMimeTypes != null) {
089 fileEntries = DLAppServiceUtil.getFileEntries(
090 folder.getRepositoryId(), folder.getFolderId(), videoMimeTypes);
091 }
092 else {
093 fileEntries = DLAppServiceUtil.getFileEntries(
094 folder.getRepositoryId(), folder.getFolderId());
095 }
096
097 for (FileEntry fileEntry : fileEntries) {
098 Element fileElement = document.createElement("File");
099
100 fileElement = getFileElement(
101 commandArgument, fileElement, fileEntry);
102
103 fileElements.add(fileElement);
104 }
105
106 return fileElements;
107 }
108
109 private String[] getVideoMimeTypes() {
110 Set<String> videoMimeTypes = VideoProcessorUtil.getVideoMimeTypes();
111
112 if (videoMimeTypes == null) {
113 return null;
114 }
115
116 return ArrayUtil.toStringArray(videoMimeTypes.toArray());
117 }
118
119 }