From: <fg...@us...> - 2011-11-20 17:59:36
|
Revision: 3702 http://openutils.svn.sourceforge.net/openutils/?rev=3702&view=rev Author: fgiust Date: 2011-11-20 17:59:29 +0000 (Sun, 20 Nov 2011) Log Message: ----------- MEDIA-274 SWF alt image and refactoring of existing mediatypes with preview Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java Added Paths: ----------- trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-swf.png trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-video.png Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702) @@ -107,4 +107,10 @@ return info; } + @Override + public String getReplacementThumbnail() + { + return "/.resources/media/icons/thumb-video.png"; + } + } Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/DocumentTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702) @@ -37,9 +37,6 @@ import javax.jcr.PropertyType; import javax.jcr.RepositoryException; -import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; -import net.sourceforge.openutils.mgnlmedia.media.utils.ImageUtils; - import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.pdfbox.pdmodel.PDDocument; @@ -53,15 +50,10 @@ * @author dschivo * @version $Id$ */ -public class DocumentTypeHandler extends BaseTypeHandler +public class DocumentTypeHandler extends MediaWithPreviewImageTypeHandler { /** - * Nodedata name where preview media content is saved - */ - public static final String PREVIEW_NODEDATA_NAME = "image"; - - /** * metadata containing the number of pages */ private static final String METADATA_PAGES = "media_pages"; @@ -74,35 +66,6 @@ /** * {@inheritDoc} */ - public String getThumbnailUrl(Content media) - { - try - { - // check if a thumbnail has been generated - if (media == null - || !media.hasNodeData(PREVIEW_NODEDATA_NAME) - || !ImageUtils.checkOrCreateResolution(media, "thumbnail", PREVIEW_NODEDATA_NAME)) - { - return "/.resources/media/icons/thumb-document.png"; - } - } - catch (RepositoryException e) - { - return "/.resources/media/icons/thumb-document.png"; - } - - return MediaConfigurationManager.getInstance().getURIMappingPrefix() - + media.getHandle() - + "/resolutions/thumbnail/" - + media.getName() - + "." - + ImageUtils.getExtension(media, "thumbnail"); - - } - - /** - * {@inheritDoc} - */ @Override public String getUrl(Content media) { @@ -175,7 +138,7 @@ PDPage page = pages.get(0); - java.awt.image.BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_ARGB, 36); + java.awt.image.BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_ARGB, 72); File file = File.createTempFile(filename, ".png"); ImageIO.write(image, "png", file); @@ -248,4 +211,13 @@ } } + + /** + * {@inheritDoc} + */ + @Override + public String getReplacementThumbnail() + { + return "/.resources/media/icons/thumb-document.png"; + } } Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/MediaWithPreviewImageTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702) @@ -20,12 +20,13 @@ package net.sourceforge.openutils.mgnlmedia.media.types.impl; import info.magnolia.cms.core.Content; + +import javax.jcr.RepositoryException; + import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager; import net.sourceforge.openutils.mgnlmedia.media.utils.ImageUtils; -import org.apache.commons.lang.StringUtils; - /** * Base class for medias that has a dynamic image as thumbnail * @author molaschi @@ -44,19 +45,37 @@ */ public String getThumbnailUrl(Content media) { - if (!ImageUtils.checkOrCreateResolution(media, "thumbnail", PREVIEW_NODEDATA_NAME)) + boolean hasPreview = false; + + try { - return StringUtils.EMPTY; + hasPreview = media.hasNodeData(PREVIEW_NODEDATA_NAME); } + catch (RepositoryException e) + { + // ignore + } - return MediaConfigurationManager.getInstance().getURIMappingPrefix() - + media.getHandle() - + "/resolutions/thumbnail/" - + media.getName() - + "." - + ImageUtils.getExtension(media, "thumbnail"); + if (hasPreview) + { + if (!ImageUtils.checkOrCreateResolution(media, "thumbnail", PREVIEW_NODEDATA_NAME)) + { + return ""; + } + return MediaConfigurationManager.getInstance().getURIMappingPrefix() + + media.getHandle() + + "/resolutions/thumbnail/" + + media.getName() + + "." + + ImageUtils.getExtension(media, "thumbnail"); + } + + return getReplacementThumbnail(); + } + public abstract String getReplacementThumbnail(); + @Override public String getPreviewImageNodeDataName() { Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java 2011-11-20 17:24:32 UTC (rev 3701) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/SwfTypeHandler.java 2011-11-20 17:59:29 UTC (rev 3702) @@ -19,11 +19,67 @@ package net.sourceforge.openutils.mgnlmedia.media.types.impl; +import info.magnolia.cms.core.Content; +import info.magnolia.cms.util.NodeDataUtil; + +import java.io.InputStream; + +import org.apache.commons.io.IOUtils; +import org.devlib.schmidt.imageinfo.ImageInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + /** + * Type handler for Flash SWF files. * @author fgiust * @version $Id$ */ -public class SwfTypeHandler extends ImageTypeHandler +public class SwfTypeHandler extends MediaWithPreviewImageTypeHandler { + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(SwfTypeHandler.class); + + @Override + public boolean onPostSave(Content media) + { + InputStream stream = null; + try + { + stream = getOriginalFileNodeData(media).getStream(); + ImageInfo ii = new ImageInfo(); + ii.setInput(stream); + if (ii.check()) + { + NodeDataUtil.getOrCreateAndSet(media, METADATA_WIDTH, ii.getWidth()); + NodeDataUtil.getOrCreateAndSet(media, METADATA_HEIGHT, ii.getHeight()); + media.save(); + } + + } + catch (Throwable e) + { + log.warn("Error extracting metadata " + + getOriginalFileNodeData(media).getHandle() + + " " + + e.getClass().getName() + + " " + + e.getMessage(), e); + } + finally + { + IOUtils.closeQuietly(stream); + } + + return super.onPostSave(media); + } + + @Override + public String getReplacementThumbnail() + { + return "/.resources/media/icons/thumb-swf.png"; + } } Added: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-swf.png =================================================================== (Binary files differ) Property changes on: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-swf.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-video.png =================================================================== (Binary files differ) Property changes on: trunk/openutils-mgnlmedia/src/main/resources/mgnl-resources/media/icons/thumb-video.png ___________________________________________________________________ Added: svn:mime-type + image/png This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |