|
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.
|