/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.blogs.util;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil;
import com.liferay.portal.kernel.repository.capabilities.TemporaryFileEntriesCapability;
import com.liferay.portal.kernel.repository.model.FileEntry;
import com.liferay.portal.kernel.servlet.taglib.ui.ImageSelector;
import com.liferay.portal.kernel.util.FileUtil;
/**
* @author Roberto Díaz
*/
public class BlogsEntryImageSelectorHelper {
public BlogsEntryImageSelectorHelper(
long imageFileEntryId, long oldImageFileEntryId, String imageCropRegion,
String imageURL, String oldImageURL) {
_imageFileEntryId = imageFileEntryId;
_oldImageFileEntryId = oldImageFileEntryId;
_imageCropRegion = imageCropRegion;
_imageURL = imageURL;
_oldImageURL = oldImageURL;
}
public ImageSelector getImageSelector() throws Exception {
if (_imageFileEntryId != _oldImageFileEntryId) {
if (_imageFileEntryId != 0) {
FileEntry fileEntry =
PortletFileRepositoryUtil.getPortletFileEntry(
_imageFileEntryId);
_fileEntryTempFile = fileEntry.isRepositoryCapabilityProvided(
TemporaryFileEntriesCapability.class);
return new ImageSelector(
FileUtil.getBytes(fileEntry.getContentStream()),
fileEntry.getFileName(), fileEntry.getMimeType(),
_imageCropRegion);
}
else {
return new ImageSelector();
}
}
else if (!_imageURL.equals(_oldImageURL)) {
return new ImageSelector(_imageURL);
}
return null;
}
public boolean isFileEntryTempFile() {
if (_fileEntryTempFile == null) {
if ((_imageFileEntryId == 0) ||
(_imageFileEntryId == _oldImageFileEntryId)) {
_fileEntryTempFile = false;
}
else {
try {
FileEntry fileEntry =
PortletFileRepositoryUtil.getPortletFileEntry(
_imageFileEntryId);
_fileEntryTempFile =
fileEntry.isRepositoryCapabilityProvided(
TemporaryFileEntriesCapability.class);
}
catch (PortalException pe) {
// LPS-52675
if (_log.isDebugEnabled()) {
_log.debug(pe, pe);
}
return false;
}
}
}
return _fileEntryTempFile;
}
private static final Log _log = LogFactoryUtil.getLog(
BlogsEntryImageSelectorHelper.class);
private Boolean _fileEntryTempFile;
private final String _imageCropRegion;
private final long _imageFileEntryId;
private final String _imageURL;
private final long _oldImageFileEntryId;
private final String _oldImageURL;
}