|
From: <die...@us...> - 2010-06-30 10:24:41
|
Revision: 2751
http://openutils.svn.sourceforge.net/openutils/?rev=2751&view=rev
Author: diego_schivo
Date: 2010-06-30 10:24:33 +0000 (Wed, 30 Jun 2010)
Log Message:
-----------
MEDIA-145 repository is always media
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 10:21:56 UTC (rev 2750)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 10:24:33 UTC (rev 2751)
@@ -33,6 +33,7 @@
import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Order;
import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Restrictions;
import net.sourceforge.openutils.mgnlmedia.media.advancedsearch.SearchFilter;
+import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
@@ -92,12 +93,12 @@
/**
* {@inheritDoc}
*/
- public AdvancedResult search(HttpServletRequest request, String basePath, String repository)
+ public AdvancedResult search(HttpServletRequest request, String basePath)
{
- return search(request, basePath, repository, maxresults, 1);
+ return search(request, basePath, maxresults, 1);
}
- public AdvancedResult search(HttpServletRequest request, String basePath, String repository,
+ public AdvancedResult search(HttpServletRequest request, String basePath,
int itemsPerPage, int pageNumberStartingFromOne)
{
@@ -119,7 +120,7 @@
Criteria c = JCRCriteriaFactory.createCriteria();
c.setBasePath(sb.toString());
- c.setWorkspace(repository);
+ c.setWorkspace(MediaModule.REPO);
c.setPaging(itemsPerPage, pageNumberStartingFromOne);
c.addOrder(Order.desc("@jcr:score"));
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 10:21:56 UTC (rev 2750)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 10:24:33 UTC (rev 2751)
@@ -87,11 +87,11 @@
if ("xml".equals(format))
{
// paging disabled for xml requests
- contentMediaDetails = configuration.search(request, null, "media");
+ contentMediaDetails = configuration.search(request, null);
}
else
{
- contentMediaDetails = configuration.search(request, "/", "media", items, page);
+ contentMediaDetails = configuration.search(request, "/", items, page);
}
setNumberOfMedia(new HashMap<String, Integer>());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-06-30 10:27:32
|
Revision: 2752
http://openutils.svn.sourceforge.net/openutils/?rev=2752&view=rev
Author: diego_schivo
Date: 2010-06-30 10:27:26 +0000 (Wed, 30 Jun 2010)
Log Message:
-----------
MEDIA-145 media-type before path
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 10:24:33 UTC (rev 2751)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 10:27:26 UTC (rev 2752)
@@ -392,9 +392,9 @@
}
/**
- * Media search using Magnolia Criteria API
+ * Finds media items using Magnolia Criteria API.
+ * @param mediaType
* @param path
- * @param type
* @param search
* @param childrenOnly
* @param sorting
@@ -402,7 +402,7 @@
* @param pageNumberStartingFromOne
* @return
*/
- public AdvancedResult find(String path, String type, String search, boolean childrenOnly, String sorting,
+ public AdvancedResult find(String mediaType, String path, String search, boolean childrenOnly, String sorting,
int itemsPerPage, int pageNumberStartingFromOne)
{
Criteria criteria = JCRCriteriaFactory.createCriteria().setWorkspace(MediaModule.REPO);
@@ -418,9 +418,9 @@
criteria.add(Restrictions.eq("@jcr:primaryType", MGNL_MEDIA_TYPE));
// media type
- if (!StringUtils.isEmpty(type))
+ if (!StringUtils.isEmpty(mediaType))
{
- criteria.add(Restrictions.eq("@type", type));
+ criteria.add(Restrictions.eq("@type", mediaType));
}
// search text
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-06-30 10:24:33 UTC (rev 2751)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-06-30 10:27:26 UTC (rev 2752)
@@ -207,8 +207,8 @@
return 0;
}
AdvancedResult typeResult = MediaConfigurationManager.getInstance().find(
+ mtc.getName(),
path,
- mtc.getName(),
search,
StringUtils.isEmpty(search),
null,
@@ -232,8 +232,8 @@
writable = folder.isGranted(Permission.WRITE);
canPublish = writable && ActivationManagerFactory.getActivationManager().hasAnyActiveSubscriber();
result = MediaConfigurationManager.getInstance().find(
+ type,
folder.getHandle(),
- type,
null,
true,
sorting,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-06-30 10:32:54
|
Revision: 2753
http://openutils.svn.sourceforge.net/openutils/?rev=2753&view=rev
Author: diego_schivo
Date: 2010-06-30 10:32:48 +0000 (Wed, 30 Jun 2010)
Log Message:
-----------
MEDIA-145 possibility to filter on media types (media counting)
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 10:27:26 UTC (rev 2752)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 10:32:48 UTC (rev 2753)
@@ -93,12 +93,12 @@
/**
* {@inheritDoc}
*/
- public AdvancedResult search(HttpServletRequest request, String basePath)
+ public AdvancedResult search(HttpServletRequest request, String mediaType, String basePath)
{
- return search(request, basePath, maxresults, 1);
+ return search(request, mediaType, basePath, maxresults, 1);
}
- public AdvancedResult search(HttpServletRequest request, String basePath,
+ public AdvancedResult search(HttpServletRequest request, String mediaType, String basePath,
int itemsPerPage, int pageNumberStartingFromOne)
{
@@ -137,6 +137,12 @@
// set type
c.add(Restrictions.eq("@jcr:primaryType", "mgnl:media"));
+ // media type
+ if (!StringUtils.isEmpty(mediaType))
+ {
+ c.add(Restrictions.eq("@type", mediaType));
+ }
+
return c.execute();
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 10:27:26 UTC (rev 2752)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 10:32:48 UTC (rev 2753)
@@ -87,11 +87,11 @@
if ("xml".equals(format))
{
// paging disabled for xml requests
- contentMediaDetails = configuration.search(request, null);
+ contentMediaDetails = configuration.search(request, null, null);
}
else
{
- contentMediaDetails = configuration.search(request, "/", items, page);
+ contentMediaDetails = configuration.search(request, null, "/", items, page);
}
setNumberOfMedia(new HashMap<String, Integer>());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-06-30 15:34:29
|
Revision: 2764
http://openutils.svn.sourceforge.net/openutils/?rev=2764&view=rev
Author: diego_schivo
Date: 2010-06-30 15:34:23 +0000 (Wed, 30 Jun 2010)
Log Message:
-----------
MEDIA-145 moved field "contentMediaDetails" to superclass
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 15:21:47 UTC (rev 2763)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 15:34:23 UTC (rev 2764)
@@ -91,14 +91,6 @@
this.maxresults = maxresults;
}
- /**
- * {@inheritDoc}
- */
- public AdvancedResult search(HttpServletRequest request, String mediaType, String basePath)
- {
- return search(request, mediaType, basePath, MediaFolderViewPage.SORT_BY_SCORE, maxresults, 1);
- }
-
public AdvancedResult search(HttpServletRequest request, String mediaType, String basePath, String sorting,
int itemsPerPage, int pageNumberStartingFromOne)
{
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 15:21:47 UTC (rev 2763)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 15:34:23 UTC (rev 2764)
@@ -42,8 +42,6 @@
private String format;
- private AdvancedResult contentMediaDetails;
-
private String selectTab;
/**
@@ -78,7 +76,7 @@
// no need to count media per type on xml requests
return 0;
}
- return configuration.search(request, mtc.getName(), "/").getTotalSize();
+ return configuration.search(request, mtc.getName(), "/", SORT_BY_SCORE, 0, 1).getTotalSize();
}
/**
@@ -90,8 +88,7 @@
// @todo defaultBasePath handling only on xml requests?
if ("xml".equals(format))
{
- // paging disabled for xml requests
- return configuration.search(request, type, null);
+ return configuration.search(request, null, null, SORT_BY_SCORE, items, page);
}
return configuration.search(request, type, "/", sorting, items, page);
}
@@ -139,24 +136,6 @@
}
/**
- * Returns the contentMediaDetails.
- * @return the contentMediaDetails
- */
- public AdvancedResult getContentMediaDetails()
- {
- return contentMediaDetails;
- }
-
- /**
- * Sets the contentMediaDetails.
- * @param contentMediaDetails the contentMediaDetails to set
- */
- public void setContentMediaDetails(AdvancedResult contentMediaDetails)
- {
- this.contentMediaDetails = contentMediaDetails;
- }
-
- /**
* Returns the selectTab.
* @return the selectTab
*/
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-06-30 15:21:47 UTC (rev 2763)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-06-30 15:34:23 UTC (rev 2764)
@@ -140,6 +140,8 @@
protected int items = 10;
+ protected AdvancedResult contentMediaDetails;
+
/**
* @param name
* @param request
@@ -270,14 +272,14 @@
medias = Iterators.emptyIterator();
pages = Collections.emptyList();
- AdvancedResult result = findMediaItems();
- if (result != null)
+ contentMediaDetails = findMediaItems();
+ if (contentMediaDetails != null)
{
MediaTypeConfiguration mtc = MediaConfigurationManager.getInstance().getTypes().get(type);
// casts Iterator<AdvancedResultItem> to Iterator<Content>
- Iterator<Content> contentIterator = Iterators.filter(result.getItems(), Content.class);
+ Iterator<Content> contentIterator = Iterators.filter(contentMediaDetails.getItems(), Content.class);
medias = Iterators.transform(contentIterator, new MediaBeanBuilder(mtc));
- pages = MgnlPagingElFunctions.pageList(result.getNumberOfPages(), 5, "page");
+ pages = MgnlPagingElFunctions.pageList(contentMediaDetails.getNumberOfPages(), 5, "page");
}
return super.show();
@@ -832,6 +834,15 @@
this.items = items;
}
+ /**
+ * Returns the contentMediaDetails.
+ * @return the contentMediaDetails
+ */
+ public AdvancedResult getContentMediaDetails()
+ {
+ return contentMediaDetails;
+ }
+
public boolean isSingleInstance()
{
return MediaEl.module().isSingleinstance();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-06-30 16:48:06
|
Revision: 2765
http://openutils.svn.sourceforge.net/openutils/?rev=2765&view=rev
Author: diego_schivo
Date: 2010-06-30 16:48:00 +0000 (Wed, 30 Jun 2010)
Log Message:
-----------
MEDIA-145 refactoring
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 15:34:23 UTC (rev 2764)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 16:48:00 UTC (rev 2765)
@@ -33,6 +33,7 @@
import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Order;
import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Restrictions;
import net.sourceforge.openutils.mgnlmedia.media.advancedsearch.SearchFilter;
+import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager;
import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
import net.sourceforge.openutils.mgnlmedia.media.pages.MediaFolderViewPage;
@@ -94,29 +95,42 @@
public AdvancedResult search(HttpServletRequest request, String mediaType, String basePath, String sorting,
int itemsPerPage, int pageNumberStartingFromOne)
{
+ Criteria c = JCRCriteriaFactory.createCriteria().setWorkspace(MediaModule.REPO).add(
+ Restrictions.eq("@jcr:primaryType", MediaConfigurationManager.MEDIA.getSystemName()));
- StringBuilder sb = new StringBuilder();
+ // base path
if (basePath == null)
{
// use default
- sb.append("/").append(defaultBasePath).append("//*");
+ basePath = '/' + defaultBasePath + "//*";
}
- if (StringUtils.isBlank(basePath) || basePath.equals("/"))
+ else if (StringUtils.isEmpty(basePath) || basePath.equals("/"))
{
- sb.append("//*");
+ basePath = "//*";
}
else
{
- sb.append("/").append(basePath).append("//*");
+ basePath = '/' + basePath + "//*";
}
+ c.setBasePath(basePath);
- Criteria c = JCRCriteriaFactory.createCriteria();
+ // media type
+ if (!StringUtils.isEmpty(mediaType))
+ {
+ c.add(Restrictions.eq("@type", mediaType));
+ }
- c.setBasePath(sb.toString());
- c.setWorkspace(MediaModule.REPO);
+ // filters
+ List<Criterion> criterionList = new ArrayList<Criterion>();
+ for (String key : filters.keySet())
+ {
+ criterionList = filters.get(key).getCriterionList(key, request);
+ for (Criterion criterion : criterionList)
+ {
+ c.add(criterion);
+ }
+ }
- c.setPaging(itemsPerPage, pageNumberStartingFromOne);
-
// sorting
if (MediaFolderViewPage.SORT_BY_SCORE.equals(sorting))
{
@@ -131,24 +145,9 @@
c.addOrder(Order.asc("@title"));
}
- List<Criterion> criterionList = new ArrayList<Criterion>();
- for (String key : filters.keySet())
- {
- criterionList = filters.get(key).getCriterionList(key, request);
- for (Criterion criterion : criterionList)
- {
- c.add(criterion);
- }
- }
- // set type
- c.add(Restrictions.eq("@jcr:primaryType", "mgnl:media"));
+ // paging
+ c.setPaging(itemsPerPage, pageNumberStartingFromOne);
- // media type
- if (!StringUtils.isEmpty(mediaType))
- {
- c.add(Restrictions.eq("@type", mediaType));
- }
-
return c.execute();
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 15:34:23 UTC (rev 2764)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 16:48:00 UTC (rev 2765)
@@ -442,8 +442,7 @@
// paging
if (itemsPerPage > 0)
{
- criteria.setFirstResult((pageNumberStartingFromOne - 1) * itemsPerPage);
- criteria.setMaxResults(itemsPerPage);
+ criteria.setPaging(itemsPerPage, pageNumberStartingFromOne);
}
return criteria.execute();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-06-30 16:55:17
|
Revision: 2766
http://openutils.svn.sourceforge.net/openutils/?rev=2766&view=rev
Author: diego_schivo
Date: 2010-06-30 16:55:11 +0000 (Wed, 30 Jun 2010)
Log Message:
-----------
MEDIA-145 maxresults no more needed because of pagination
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 16:48:00 UTC (rev 2765)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 16:55:11 UTC (rev 2766)
@@ -58,8 +58,6 @@
private String defaultBasePath;
- private int maxresults = 10000;
-
/**
* Returns the filters.
* @return the filters
@@ -83,15 +81,6 @@
this.defaultBasePath = defaultBasePath;
}
- /**
- * Sets the maxresults.
- * @param maxresults the maxresults to set
- */
- public void setMaxresults(int maxresults)
- {
- this.maxresults = maxresults;
- }
-
public AdvancedResult search(HttpServletRequest request, String mediaType, String basePath, String sorting,
int itemsPerPage, int pageNumberStartingFromOne)
{
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 16:48:00 UTC (rev 2765)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 16:55:11 UTC (rev 2766)
@@ -405,47 +405,51 @@
public AdvancedResult find(String mediaType, String path, String search, boolean childrenOnly, String sorting,
int itemsPerPage, int pageNumberStartingFromOne)
{
- Criteria criteria = JCRCriteriaFactory.createCriteria().setWorkspace(MediaModule.REPO);
+ Criteria c = JCRCriteriaFactory.createCriteria().setWorkspace(MediaModule.REPO);
// base path
path = StringUtils.removeEnd(StringUtils.removeStart(StringUtils.trimToEmpty(path), "/"), "/");
if (!StringUtils.isEmpty(path))
{
- criteria.setBasePath("//" + path + (childrenOnly ? "/*" : "//*"));
+ c.setBasePath("//" + path + (childrenOnly ? "/*" : "//*"));
}
// node type
- criteria.add(Restrictions.eq("@jcr:primaryType", MGNL_MEDIA_TYPE));
+ c.add(Restrictions.eq("@jcr:primaryType", MGNL_MEDIA_TYPE));
// media type
if (!StringUtils.isEmpty(mediaType))
{
- criteria.add(Restrictions.eq("@type", mediaType));
+ c.add(Restrictions.eq("@type", mediaType));
}
// search text
if (!StringUtils.isEmpty(search))
{
- criteria.add(Restrictions.contains(".", search));
+ c.add(Restrictions.contains(".", search));
}
// sorting
- if (MediaFolderViewPage.SORT_BY_CREATIONDATE.equals(sorting))
+ if (MediaFolderViewPage.SORT_BY_SCORE.equals(sorting))
{
- criteria.addOrder(Order.asc("@jcr:created"));
+ c.addOrder(Order.desc("@jcr:score"));
}
+ else if (MediaFolderViewPage.SORT_BY_CREATIONDATE.equals(sorting))
+ {
+ c.addOrder(Order.asc("@jcr:created"));
+ }
else if (MediaFolderViewPage.SORT_BY_TITLE.equals(sorting))
{
- criteria.addOrder(Order.asc("@title"));
+ c.addOrder(Order.asc("@title"));
}
// paging
if (itemsPerPage > 0)
{
- criteria.setPaging(itemsPerPage, pageNumberStartingFromOne);
+ c.setPaging(itemsPerPage, pageNumberStartingFromOne);
}
- return criteria.execute();
+ return c.execute();
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-06-30 17:24:24
|
Revision: 2767
http://openutils.svn.sourceforge.net/openutils/?rev=2767&view=rev
Author: diego_schivo
Date: 2010-06-30 17:24:18 +0000 (Wed, 30 Jun 2010)
Log Message:
-----------
MEDIA-145 refactoring: just one search method based on Magnolia Criteria API
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchFormPage.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 16:55:11 UTC (rev 2766)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-06-30 17:24:18 UTC (rev 2767)
@@ -81,25 +81,27 @@
this.defaultBasePath = defaultBasePath;
}
- public AdvancedResult search(HttpServletRequest request, String mediaType, String basePath, String sorting,
- int itemsPerPage, int pageNumberStartingFromOne)
+ public AdvancedResult search(HttpServletRequest request, String mediaType, String path, boolean descendants,
+ String sorting, int itemsPerPage, int pageNumberStartingFromOne)
{
Criteria c = JCRCriteriaFactory.createCriteria().setWorkspace(MediaModule.REPO).add(
Restrictions.eq("@jcr:primaryType", MediaConfigurationManager.MEDIA.getSystemName()));
// base path
- if (basePath == null)
+ String basePath;
+ String suffix = '/' + (descendants ? "/" : StringUtils.EMPTY) + '*';
+ if (path == null)
{
// use default
- basePath = '/' + defaultBasePath + "//*";
+ basePath = '/' + defaultBasePath + suffix;
}
- else if (StringUtils.isEmpty(basePath) || basePath.equals("/"))
+ else if (StringUtils.isEmpty(path) || path.equals("/"))
{
- basePath = "//*";
+ basePath = suffix;
}
else
{
- basePath = '/' + basePath + "//*";
+ basePath = '/' + path + suffix;
}
c.setBasePath(basePath);
@@ -135,7 +137,10 @@
}
// paging
- c.setPaging(itemsPerPage, pageNumberStartingFromOne);
+ if (itemsPerPage > 0)
+ {
+ c.setPaging(itemsPerPage, pageNumberStartingFromOne);
+ }
return c.execute();
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 16:55:11 UTC (rev 2766)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-06-30 17:24:18 UTC (rev 2767)
@@ -48,11 +48,6 @@
import javax.jcr.RepositoryException;
import javax.jcr.query.InvalidQueryException;
-import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResult;
-import net.sourceforge.openutils.mgnlcriteria.jcr.query.Criteria;
-import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRCriteriaFactory;
-import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Order;
-import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Restrictions;
import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
import net.sourceforge.openutils.mgnlmedia.media.pages.MediaFolderViewPage;
@@ -194,7 +189,7 @@
* Get all media nodes in a folder
* @param folder folder
* @return all media nodes
- * @deprecated use the find method overload based on Magnolia Criteria API
+ * @deprecated use SearchMediaQueryConfiguration.search(...)
*/
@Deprecated
public Collection<Content> getMediaNodes(Content folder)
@@ -220,7 +215,7 @@
* @param type media
* @param sorting sorting
* @return all media nodes of passed type
- * @deprecated use the find method overload based on Magnolia Criteria API
+ * @deprecated use SearchMediaQueryConfiguration.search(...)
*/
@Deprecated
public Collection<Content> getMediaNodes(final Content folder, final String type, final String sorting)
@@ -336,7 +331,7 @@
* @param type if specified restricts the search to the type
* @return found medias
* @throws RepositoryException exception working on repository
- * @deprecated use the find method overload based on Magnolia Criteria API
+ * @deprecated use SearchMediaQueryConfiguration.search(...)
*/
@Deprecated
public Collection<Content> search(String text, final String type) throws RepositoryException
@@ -392,67 +387,6 @@
}
/**
- * Finds media items using Magnolia Criteria API.
- * @param mediaType
- * @param path
- * @param search
- * @param childrenOnly
- * @param sorting
- * @param itemsPerPage
- * @param pageNumberStartingFromOne
- * @return
- */
- public AdvancedResult find(String mediaType, String path, String search, boolean childrenOnly, String sorting,
- int itemsPerPage, int pageNumberStartingFromOne)
- {
- Criteria c = JCRCriteriaFactory.createCriteria().setWorkspace(MediaModule.REPO);
-
- // base path
- path = StringUtils.removeEnd(StringUtils.removeStart(StringUtils.trimToEmpty(path), "/"), "/");
- if (!StringUtils.isEmpty(path))
- {
- c.setBasePath("//" + path + (childrenOnly ? "/*" : "//*"));
- }
-
- // node type
- c.add(Restrictions.eq("@jcr:primaryType", MGNL_MEDIA_TYPE));
-
- // media type
- if (!StringUtils.isEmpty(mediaType))
- {
- c.add(Restrictions.eq("@type", mediaType));
- }
-
- // search text
- if (!StringUtils.isEmpty(search))
- {
- c.add(Restrictions.contains(".", search));
- }
-
- // sorting
- if (MediaFolderViewPage.SORT_BY_SCORE.equals(sorting))
- {
- c.addOrder(Order.desc("@jcr:score"));
- }
- else if (MediaFolderViewPage.SORT_BY_CREATIONDATE.equals(sorting))
- {
- c.addOrder(Order.asc("@jcr:created"));
- }
- else if (MediaFolderViewPage.SORT_BY_TITLE.equals(sorting))
- {
- c.addOrder(Order.asc("@title"));
- }
-
- // paging
- if (itemsPerPage > 0)
- {
- c.setPaging(itemsPerPage, pageNumberStartingFromOne);
- }
-
- return c.execute();
- }
-
- /**
* Get the type configuration for a media
* @param media media
* @return type configuration
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchFormPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchFormPage.java 2010-06-30 16:55:11 UTC (rev 2766)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchFormPage.java 2010-06-30 17:24:18 UTC (rev 2767)
@@ -22,10 +22,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import net.sourceforge.openutils.mgnlmedia.media.advancedsearch.configuration.SearchMediaQueryConfiguration;
-import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
-
/**
* Page that renders the folder view
* @author molaschi
@@ -34,8 +31,6 @@
public class MediaAdvancedSearchFormPage extends MediaFolderViewPage
{
- protected SearchMediaQueryConfiguration configuration;
-
/**
* @param name
* @param request
@@ -44,18 +39,5 @@
public MediaAdvancedSearchFormPage(String name, HttpServletRequest request, HttpServletResponse response)
{
super(name, request, response);
-
- configuration = MediaModule.getSearchConfiguration();
-
}
-
- /**
- * Returns the configuration.
- * @return the configuration
- */
- public SearchMediaQueryConfiguration getConfiguration()
- {
- return configuration;
- }
-
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 16:55:11 UTC (rev 2766)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-06-30 17:24:18 UTC (rev 2767)
@@ -76,7 +76,7 @@
// no need to count media per type on xml requests
return 0;
}
- return configuration.search(request, mtc.getName(), "/", SORT_BY_SCORE, 0, 1).getTotalSize();
+ return configuration.search(request, mtc.getName(), "/", true, SORT_BY_SCORE, 0, 1).getTotalSize();
}
/**
@@ -88,9 +88,9 @@
// @todo defaultBasePath handling only on xml requests?
if ("xml".equals(format))
{
- return configuration.search(request, null, null, SORT_BY_SCORE, items, page);
+ return configuration.search(request, null, null, true, SORT_BY_SCORE, items, page);
}
- return configuration.search(request, type, "/", sorting, items, page);
+ return configuration.search(request, type, "/", true, sorting, items, page);
}
@Override
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-06-30 16:55:11 UTC (rev 2766)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-06-30 17:24:18 UTC (rev 2767)
@@ -53,6 +53,7 @@
import javax.servlet.http.HttpServletResponse;
import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResult;
+import net.sourceforge.openutils.mgnlmedia.media.advancedsearch.configuration.SearchMediaQueryConfiguration;
import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager;
import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaTypeConfiguration;
import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
@@ -142,6 +143,8 @@
protected AdvancedResult contentMediaDetails;
+ protected SearchMediaQueryConfiguration configuration;
+
/**
* @param name
* @param request
@@ -150,6 +153,7 @@
public MediaFolderViewPage(String name, HttpServletRequest request, HttpServletResponse response)
{
super(name, request, response);
+ configuration = MediaModule.getSearchConfiguration();
}
/**
@@ -213,15 +217,9 @@
{
return 0;
}
- AdvancedResult typeResult = MediaConfigurationManager.getInstance().find(
- mtc.getName(),
- path,
- search,
- StringUtils.isEmpty(search),
- // sorting must be specified for total-size to work (-1 otherwise)
- getDefaultSorting(),
- 0,
- 1);
+ // sorting must be specified for total-size to work (-1 otherwise)
+ AdvancedResult typeResult = configuration
+ .search(request, mtc.getName(), path, false, getDefaultSorting(), 0, 1);
return typeResult.getTotalSize();
}
@@ -231,31 +229,18 @@
*/
protected AdvancedResult findMediaItems()
{
- AdvancedResult result = null;
- if (!StringUtils.isEmpty(path))
+ if (StringUtils.isEmpty(path))
{
- Content folder = ContentUtil.getContent(MediaModule.REPO, path);
- if (folder != null)
- {
- writable = folder.isGranted(Permission.WRITE);
- canPublish = writable && ActivationManagerFactory.getActivationManager().hasAnyActiveSubscriber();
- result = MediaConfigurationManager.getInstance().find(
- type,
- folder.getHandle(),
- null,
- true,
- sorting,
- items,
- page);
- }
+ return null;
}
- else if (!StringUtils.isBlank(search))
+ Content folder = ContentUtil.getContent(MediaModule.REPO, path);
+ if (folder == null)
{
- writable = false;
- canPublish = false;
- result = MediaConfigurationManager.getInstance().find(null, type, search, false, sorting, 0, 1);
+ return null;
}
- return result;
+ writable = folder.isGranted(Permission.WRITE);
+ canPublish = writable && ActivationManagerFactory.getActivationManager().hasAnyActiveSubscriber();
+ return configuration.search(request, type, path, false, sorting, items, page);
}
/**
@@ -843,6 +828,15 @@
return contentMediaDetails;
}
+ /**
+ * Returns the configuration.
+ * @return the configuration
+ */
+ public SearchMediaQueryConfiguration getConfiguration()
+ {
+ return configuration;
+ }
+
public boolean isSingleInstance()
{
return MediaEl.module().isSingleinstance();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-08-17 13:17:21
|
Revision: 2842
http://openutils.svn.sourceforge.net/openutils/?rev=2842&view=rev
Author: diego_schivo
Date: 2010-08-17 13:17:14 +0000 (Tue, 17 Aug 2010)
Log Message:
-----------
MEDIA-162 possibility for a custom media-type to add its own messages
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaTypeConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MessagesTemplatedMVCHandler.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaTypeConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaTypeConfiguration.java 2010-08-03 13:19:39 UTC (rev 2841)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaTypeConfiguration.java 2010-08-17 13:17:14 UTC (rev 2842)
@@ -47,6 +47,8 @@
private List<String> extensionsList;
+ private String i18nBasename;
+
/**
* Returns the label.
* @return the label
@@ -156,6 +158,24 @@
}
/**
+ * Returns the i18nBasename.
+ * @return the i18nBasename
+ */
+ public String getI18nBasename()
+ {
+ return i18nBasename;
+ }
+
+ /**
+ * Sets the i18nBasename.
+ * @param i18nBasename the i18nBasename to set
+ */
+ public void setI18nBasename(String i18nBasename)
+ {
+ this.i18nBasename = i18nBasename;
+ }
+
+ /**
* Sets the extensions as a comma separated list.
* @param extensionsString a comma separated list of extensions
*/
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MessagesTemplatedMVCHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MessagesTemplatedMVCHandler.java 2010-08-03 13:19:39 UTC (rev 2841)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MessagesTemplatedMVCHandler.java 2010-08-17 13:17:14 UTC (rev 2842)
@@ -24,9 +24,11 @@
import freemarker.template.TemplateMethodModel;
import freemarker.template.TemplateModelException;
import info.magnolia.cms.i18n.Messages;
+import info.magnolia.cms.i18n.MessagesUtil;
import info.magnolia.cms.util.RequestFormUtil;
import info.magnolia.module.admininterface.TemplatedMVCHandler;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -34,7 +36,11 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager;
+import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaTypeConfiguration;
+
import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -64,12 +70,31 @@
super(name, request, response);
}
+ private Messages mediaTypesExtendedMsgs;
+
/**
* {@inheritDoc}
*/
@Override
public Messages getMsgs()
{
+
+ if (mediaTypesExtendedMsgs == null)
+ {
+ Map<String, MediaTypeConfiguration> types = MediaConfigurationManager.getInstance().getTypes();
+ List<String> basenames = new ArrayList<String>();
+ basenames.add(getI18nBasename());
+ for (MediaTypeConfiguration typeConfig : types.values())
+ {
+ String basename = typeConfig.getI18nBasename();
+ if (!StringUtils.isEmpty(basename) && !basenames.contains(basename))
+ {
+ basenames.add(basename);
+ }
+ }
+ mediaTypesExtendedMsgs = MessagesUtil.chain(basenames.toArray(new String[0]));
+ super.setMsgs(mediaTypesExtendedMsgs);
+ }
return super.getMsgs();
}
@@ -126,4 +151,4 @@
}
}
-}
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-08-31 16:09:19
|
Revision: 2961
http://openutils.svn.sourceforge.net/openutils/?rev=2961&view=rev
Author: diego_schivo
Date: 2010-08-31 16:09:12 +0000 (Tue, 31 Aug 2010)
Log Message:
-----------
formatting only
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/DefaultZipImporter.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporter.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporterException.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java 2010-08-31 16:05:19 UTC (rev 2960)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaBrowserPage.java 2010-08-31 16:09:12 UTC (rev 2961)
@@ -133,7 +133,7 @@
ZipFile zip = new ZipFile(temp);
ZipImporter importer = MediaEl.module().getZipimporter();
if (importer == null)
- { // Fallback to the default if nothing is set.
+ { // Fallback to the default if nothing is set.
importer = new DefaultZipImporter();
}
importer.importFromZip(zip, parentPath);
@@ -332,7 +332,9 @@
public String getMessage(String key, String arg)
{
- return super.getMsgs().get(key, new String[]{arg });
+ return super.getMsgs().get(key, new String[]{
+ arg
+ });
}
/**
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/DefaultZipImporter.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/DefaultZipImporter.java 2010-08-31 16:05:19 UTC (rev 2960)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/DefaultZipImporter.java 2010-08-31 16:09:12 UTC (rev 2961)
@@ -28,17 +28,19 @@
import org.apache.commons.lang.StringUtils;
+
/**
* Default zip importer. Simply takes files in the provided zip file and store them in the media repository.
- *
* @author Danilo Ghirardelli
*/
-public class DefaultZipImporter implements ZipImporter {
+public class DefaultZipImporter implements ZipImporter
+{
/**
* {@inheritDoc}
*/
- public void importFromZip(ZipFile zip, String parentPath) throws ZipImporterException {
+ public void importFromZip(ZipFile zip, String parentPath) throws ZipImporterException
+ {
try
{
Enumeration< ? extends ZipEntry> entries = zip.entries();
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporter.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporter.java 2010-08-31 16:05:19 UTC (rev 2960)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporter.java 2010-08-31 16:09:12 UTC (rev 2961)
@@ -27,15 +27,14 @@
* images. Common cases are: - Title, description or other metadata are included in the media file name or folder. -
* Metadata for all medias are included in a file (xml, txt) in the zip. - Metadata for the media is stored within the
* zip file metadata. Implementing this interface you can cover any of the aforementioned cases.
- *
* @author Danilo Ghirardelli
*/
-public interface ZipImporter {
+public interface ZipImporter
+{
/**
* Stores in the media repository the images found in the zip file. Implementing this method you have control over
* the (eventual) metadata handling.
- *
* @param zipFile The file from request
* @param parentPath Repo folder selected for storing the images. May be null.
* @throws ZipImporterException
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporterException.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporterException.java 2010-08-31 16:05:19 UTC (rev 2960)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/zip/ZipImporterException.java 2010-08-31 16:09:12 UTC (rev 2961)
@@ -23,7 +23,8 @@
* Exception for zip import.
* @author Danilo Ghirardelli
*/
-public class ZipImporterException extends RuntimeException {
+public class ZipImporterException extends RuntimeException
+{
/**
* Stable serialVersionUID.
@@ -33,7 +34,8 @@
/**
* @param message
*/
- public ZipImporterException(String message) {
+ public ZipImporterException(String message)
+ {
super(message);
}
@@ -41,7 +43,8 @@
* @param message
* @param cause
*/
- public ZipImporterException(String message, Throwable cause) {
+ public ZipImporterException(String message, Throwable cause)
+ {
super(message, cause);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2010-09-10 15:29:23
|
Revision: 3034
http://openutils.svn.sourceforge.net/openutils/?rev=3034&view=rev
Author: fgiust
Date: 2010-09-10 15:29:16 +0000 (Fri, 10 Sep 2010)
Log Message:
-----------
MEDIA-179 enum for sorting options
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
Added Paths:
-----------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/SortMode.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-09-10 15:24:05 UTC (rev 3033)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/advancedsearch/configuration/SearchMediaQueryConfiguration.java 2010-09-10 15:29:16 UTC (rev 3034)
@@ -35,7 +35,7 @@
import net.sourceforge.openutils.mgnlmedia.media.advancedsearch.SearchFilter;
import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager;
import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
-import net.sourceforge.openutils.mgnlmedia.media.pages.MediaFolderViewPage;
+import net.sourceforge.openutils.mgnlmedia.media.pages.SortMode;
import net.sourceforge.openutils.mgnlmedia.media.types.MediaTypeHandler;
import org.apache.commons.lang.StringUtils;
@@ -103,7 +103,7 @@
}
public AdvancedResult search(HttpServletRequest request, String mediaType, String path, boolean descendants,
- String sorting, int itemsPerPage, int pageNumberStartingFromOne)
+ SortMode sorting, int itemsPerPage, int pageNumberStartingFromOne)
{
Criteria c = JCRCriteriaFactory
.createCriteria()
@@ -140,22 +140,26 @@
}
// sorting
- if (MediaFolderViewPage.SORT_BY_SCORE.equals(sorting))
+ if (sorting == SortMode.SCORE)
{
c.addOrder(Order.desc("@jcr:score"));
}
- else if (MediaFolderViewPage.SORT_BY_CREATIONDATE.equals(sorting))
+ else if (sorting == SortMode.CREATIONDATE_ASC)
{
c.addOrder(Order.asc("@jcr:created"));
}
- else if (MediaFolderViewPage.SORT_BY_TITLE.equals(sorting))
+ else if (sorting == SortMode.CREATIONDATE_DESC)
{
- c.addOrder(Order.asc("@title"));
+ c.addOrder(Order.desc("@jcr:created"));
}
- else if (MediaFolderViewPage.SORT_BY_NAME.equals(sorting))
+ else if (sorting == SortMode.FILENAME_ASC)
{
c.addOrder(Order.asc("@" + MediaTypeHandler.METADATA_NAME));
}
+ else if (sorting == SortMode.FILENAME_DESC)
+ {
+ c.addOrder(Order.desc("@" + MediaTypeHandler.METADATA_NAME));
+ }
// paging
if (itemsPerPage > 0)
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-09-10 15:24:05 UTC (rev 3033)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/configuration/MediaConfigurationManager.java 2010-09-10 15:29:16 UTC (rev 3034)
@@ -35,11 +35,7 @@
import info.magnolia.context.MgnlContext;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
@@ -49,7 +45,6 @@
import javax.jcr.query.InvalidQueryException;
import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
-import net.sourceforge.openutils.mgnlmedia.media.pages.MediaFolderViewPage;
import org.apache.commons.lang.StringUtils;
import org.apache.jackrabbit.util.ISO9075;
@@ -198,18 +193,6 @@
}
/**
- * Get all media nodes in a folder
- * @param folder folder
- * @return all media nodes
- * @deprecated use SearchMediaQueryConfiguration.search(...)
- */
- @Deprecated
- public Collection<Content> getMediaNodes(Content folder)
- {
- return getMediaNodes(folder, null, MediaFolderViewPage.SORT_BY_MODIFICATIONDATE);
- }
-
- /**
* Get the list of web pages where a media is used
* @param uuid uuid of media
* @return list of web pages where a media is used
@@ -222,122 +205,6 @@
}
/**
- * Get all media nodes of given type in a folder
- * @param folder folder
- * @param type media
- * @param sorting sorting
- * @return all media nodes of passed type
- * @deprecated use SearchMediaQueryConfiguration.search(...)
- */
- @Deprecated
- public Collection<Content> getMediaNodes(final Content folder, final String type, final String sorting)
- {
- List<Content> medias = (List<Content>) folder.getChildren(new Content.ContentFilter()
- {
-
- /**
- * {@inheritDoc}
- */
- public boolean accept(Content content)
- {
- try
- {
- return content.getItemType().equals(MEDIA) && NodeDataUtil.getString(content, "type").equals(type);
- }
- catch (RepositoryException e)
- {
- log.error("Error getting item type on node {} module media", folder.getHandle(), e);
- }
- return false;
- }
-
- });
- final MediaConfigurationManager mcm = this;
- Collections.sort(medias, new Comparator<Content>()
- {
-
- private Map<String, Integer> mapNpages = new HashMap<String, Integer>();
-
- /**
- * {@inheritDoc}
- */
- public int compare(Content o1, Content o2)
- {
- if (sorting.equals(MediaFolderViewPage.SORT_BY_FILENAME))
- {
- return o1.getName().compareTo(o2.getName());
- }
- else if (sorting.equals(MediaFolderViewPage.SORT_BY_MODIFICATIONDATE))
- {
- Calendar o1c = o1.getMetaData().getModificationDate() == null
- ? o1.getMetaData().getCreationDate()
- : o1.getMetaData().getModificationDate();
- Calendar o2c = o2.getMetaData().getModificationDate() == null
- ? o2.getMetaData().getCreationDate()
- : o2.getMetaData().getModificationDate();
- return o1c.compareTo(o2c);
- }
- else if (sorting.equals(MediaFolderViewPage.SORT_BY_USAGE))
- {
- Integer nPages1 = mapNpages.get(o1.getHandle());
- Integer nPages2 = mapNpages.get(o1.getHandle());
- if (nPages1 == null)
- {
- try
- {
- nPages1 = mcm.getUsedInWebPages(o1.getUUID()).size();
- }
- catch (InvalidQueryException e)
- {
- nPages1 = 0;
- log.error("Exception getting web pages for media {}", o1.getHandle(), e);
- }
- catch (RepositoryException e)
- {
- nPages1 = 0;
- log.error("Exception getting web pages for media {}", o1.getHandle(), e);
- }
- mapNpages.put(o1.getHandle(), nPages1);
- }
- if (nPages2 == null)
- {
- try
- {
- nPages2 = mcm.getUsedInWebPages(o2.getUUID()).size();
- }
- catch (InvalidQueryException e)
- {
- nPages2 = 0;
- log.error("Exception getting web pages for media {}", o2.getHandle(), e);
- }
- catch (RepositoryException e)
- {
- nPages2 = 0;
- log.error("Exception getting web pages for media {}", o2.getHandle(), e);
- }
- mapNpages.put(o2.getHandle(), nPages2);
- }
- return nPages1.compareTo(nPages2);
- }
- else
- {
- try
- {
- return (o1.getIndex() >= o2.getIndex()) ? 1 : -1;
- }
- catch (RepositoryException e)
- {
- return 0;
- }
- }
- }
-
- });
-
- return medias;
- }
-
- /**
* Search media
* @param text text to search
* @param type if specified restricts the search to the type
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-09-10 15:24:05 UTC (rev 3033)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaAdvancedSearchPage.java 2010-09-10 15:29:16 UTC (rev 3034)
@@ -98,7 +98,7 @@
return MediaEl
.module()
.getSearch()
- .search(request, type.getName(), "/", true, SORT_BY_SCORE, 0, 1)
+ .search(request, type.getName(), "/", true, SortMode.SCORE, 0, 1)
.getTotalSize();
}
@@ -117,18 +117,13 @@
null,
null,
true,
- SORT_BY_SCORE,
+ SortMode.SCORE,
searchConfig.getXmlItemsPerPage(),
page);
}
- return searchConfig.search(
- request,
- type,
- "/",
- true,
- sorting,
- MediaEl.module().getFolderViewItemsPerPage(),
- page);
+ return searchConfig.search(request, type, "/", true, SortMode.valueOf(sorting), MediaEl
+ .module()
+ .getFolderViewItemsPerPage(), page);
}
@Override
@@ -195,9 +190,9 @@
* {@inheritDoc}
*/
@Override
- protected String getDefaultSorting()
+ protected SortMode getDefaultSorting()
{
- return SORT_BY_SCORE;
+ return SortMode.SCORE;
}
public String playlistTitle()
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-09-10 15:24:05 UTC (rev 3033)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2010-09-10 15:29:16 UTC (rev 3034)
@@ -72,41 +72,6 @@
public class MediaFolderViewPage extends MessagesTemplatedMVCHandler
{
- /**
- *
- */
- public static final String SORT_BY_NAME = "name";
-
- /**
- *
- */
- public static final String SORT_BY_CREATIONDATE = "creationdate";
-
- /**
- *
- */
- public static final String SORT_BY_FILENAME = "filename";
-
- /**
- *
- */
- public static final String SORT_BY_MODIFICATIONDATE = "modificationdate";
-
- /**
- *
- */
- public static final String SORT_BY_SCORE = "score";
-
- /**
- *
- */
- public static final String SORT_BY_TITLE = "title";
-
- /**
- *
- */
- public static final String SORT_BY_USAGE = "usage";
-
protected String path;
protected String node;
@@ -207,8 +172,10 @@
}
bgSelector = StringUtils.defaultIfEmpty(bgSelector, "white");
pagesizeSelector = StringUtils.defaultIfEmpty(pagesizeSelector, "size1");
- sorting = StringUtils.defaultIfEmpty(sorting, getDefaultSorting());
-
+ if (SortMode.valueOf(sorting) == null)
+ {
+ sorting = getDefaultSorting().name();
+ }
// for activation status handling
develop = SystemProperty.getBooleanProperty("magnolia.develop");
}
@@ -225,14 +192,10 @@
return 0;
}
// sorting must be specified for total-size to work (-1 otherwise)
- AdvancedResult typeResult = MediaEl.module().getSearch().search(
- request,
- type.getName(),
- path,
- false,
- getDefaultSorting(),
- 0,
- 1);
+ AdvancedResult typeResult = MediaEl
+ .module()
+ .getSearch()
+ .search(request, type.getName(), path, false, getDefaultSorting(), 0, 1);
return typeResult.getTotalSize();
}
@@ -259,7 +222,7 @@
{
itemsPerPage = module.getFolderViewItemsPerPage();
}
- return module.getSearch().search(request, type, path, false, sorting, itemsPerPage, page);
+ return module.getSearch().search(request, type, path, false, SortMode.valueOf(sorting), itemsPerPage, page);
}
/**
@@ -852,9 +815,7 @@
public String getMessage(String key, String param)
{
- return getMsgs().get(key, new String[]{
- param
- });
+ return getMsgs().get(key, new String[]{param });
}
/**
@@ -867,9 +828,7 @@
String s = request.getQueryString();
s = StringUtils.isEmpty(s) ? StringUtils.EMPTY : "&" + s;
int p1;
- while ((p1 = StringUtils.indexOfAny(s, new String[]{
- "&type=", "&command=", "&page="
- })) != -1)
+ while ((p1 = StringUtils.indexOfAny(s, new String[]{"&type=", "&command=", "&page=" })) != -1)
{
int p2 = s.indexOf('&', p1 + 1);
s = s.substring(0, p1) + (p2 != -1 ? s.substring(p2) : StringUtils.EMPTY);
@@ -888,8 +847,8 @@
return '?' + s + (s.length() > 0 ? '&' : StringUtils.EMPTY) + "type=" + type.getName();
}
- protected String getDefaultSorting()
+ protected SortMode getDefaultSorting()
{
- return SORT_BY_CREATIONDATE;
+ return SortMode.FILENAME_ASC;
}
}
Added: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/SortMode.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/SortMode.java (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/SortMode.java 2010-09-10 15:29:16 UTC (rev 3034)
@@ -0,0 +1,27 @@
+/**
+ *
+ * Magnolia SimpleMedia Module (http://www.openmindlab.com/lab/products/media.html)
+ * Copyright (C)2008 - 2010, Openmind S.r.l. http://www.openmindonline.it
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sourceforge.openutils.mgnlmedia.media.pages;
+
+/**
+ * @author fgiust
+ * @version $Id$
+ */
+public enum SortMode {
+ CREATIONDATE_ASC, CREATIONDATE_DESC, FILENAME_ASC, FILENAME_DESC, SCORE;
+}
Property changes on: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/SortMode.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mol...@us...> - 2011-01-13 11:58:48
|
Revision: 3237
http://openutils.svn.sourceforge.net/openutils/?rev=3237&view=rev
Author: molaschi
Date: 2011-01-13 11:58:42 +0000 (Thu, 13 Jan 2011)
Log Message:
-----------
MEDIA-201 Added stop method to MediaTypeHandler, called on all media types handler instances when media module is stopping
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/MediaTypeHandler.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java 2011-01-13 11:17:19 UTC (rev 3236)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java 2011-01-13 11:58:42 UTC (rev 3237)
@@ -23,6 +23,7 @@
import info.magnolia.module.ModuleLifecycleContext;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -30,6 +31,7 @@
import net.sourceforge.openutils.mgnlmedia.media.advancedsearch.configuration.SearchMediaQueryConfiguration;
import net.sourceforge.openutils.mgnlmedia.media.configuration.ImageProcessorsManager;
import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaConfigurationManager;
+import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaTypeConfiguration;
import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaUsedInManager;
import net.sourceforge.openutils.mgnlmedia.media.zip.ZipImporter;
import net.sourceforge.openutils.mgnlmedia.playlist.pages.PlaylistTrackExtensionContributor;
@@ -98,6 +100,17 @@
public void stop(ModuleLifecycleContext ctx)
{
log.info("Stopping module media");
+ Collection<MediaTypeConfiguration> mtcs = MediaConfigurationManager.getInstance().getTypes().values();
+ if (mtcs != null)
+ {
+ for (MediaTypeConfiguration mtc : mtcs)
+ {
+ if (mtc.getHandler() != null)
+ {
+ mtc.getHandler().stop();
+ }
+ }
+ }
}
/**
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/MediaTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/MediaTypeHandler.java 2011-01-13 11:17:19 UTC (rev 3236)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/MediaTypeHandler.java 2011-01-13 11:58:42 UTC (rev 3237)
@@ -203,4 +203,9 @@
*/
void saveFromZipFile(Content media, File f, String cleanFileName, String extension) throws AccessDeniedException,
RepositoryException;
+
+ /**
+ * Notify module stopping to handler
+ */
+ void stop();
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java 2011-01-13 11:17:19 UTC (rev 3236)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java 2011-01-13 11:58:42 UTC (rev 3237)
@@ -365,4 +365,14 @@
}
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public void stop()
+ {
+ // Do nothing
+ }
+
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mol...@us...> - 2011-05-06 15:20:52
|
Revision: 3451
http://openutils.svn.sourceforge.net/openutils/?rev=3451&view=rev
Author: molaschi
Date: 2011-05-06 15:20:46 +0000 (Fri, 06 May 2011)
Log Message:
-----------
MEDIA-226
Added Paths:
-----------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java
Added: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java 2011-05-06 15:20:46 UTC (rev 3451)
@@ -0,0 +1,78 @@
+/**
+ *
+ * SimpleMedia Module for Magnolia CMS (http://www.openmindlab.com/lab/products/media.html)
+ * Copyright(C) 2008-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.sourceforge.openutils.mgnlmedia.media.crop;
+
+import java.awt.image.BufferedImage;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+
+import net.sourceforge.openutils.mgnlmedia.media.processors.ResizeCropCenteredImageResolutionProcessor;
+import net.sourceforge.openutils.mgnlmedia.media.utils.ImageUtils;
+
+
+/**
+ * @author molaschi
+ * @version $Id: $
+ */
+public class PzcImageProcessor extends ResizeCropCenteredImageResolutionProcessor
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public BufferedImage getImageForResolution(BufferedImage original, int x, int y, Map<String, String> parameters)
+ {
+ int oWidth = original.getWidth();
+ int oHeight = original.getHeight();
+
+ if (x == oWidth && y == oHeight)
+ {
+ // same size
+ return original;
+ }
+
+ String pzcParametersString = parameters.get("pzc");
+
+ if (StringUtils.isBlank(pzcParametersString))
+ {
+ return super.getImageForResolution(original, x, y, parameters);
+ }
+
+ String params[] = StringUtils.split(pzcParametersString, '|');
+
+ float zoom = Float.parseFloat(params[0]) / 100.0f;
+ float panX = Float.parseFloat(params[1]);
+ float panY = Float.parseFloat(params[2]);
+ float factor = 1.0f;
+ if (params.length > 3)
+ {
+ factor = Float.parseFloat(params[3]);
+ }
+
+ float oX = oWidth * zoom * factor;
+ float oY = oX * oHeight / oWidth;
+
+ BufferedImage filled = ImageUtils.resizeImage(original, (int) oX, (int) oY);
+ return ImageUtils.cropImage(filled, (int) (panX * factor), (int) (panY * factor), x, y);
+ }
+
+}
Added: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java (rev 0)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcServlet.java 2011-05-06 15:20:46 UTC (rev 3451)
@@ -0,0 +1,134 @@
+/**
+ *
+ * SimpleMedia Module for Magnolia CMS (http://www.openmindlab.com/lab/products/media.html)
+ * Copyright(C) 2008-2011, Openmind S.r.l. http://www.openmindonline.it
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.sourceforge.openutils.mgnlmedia.media.crop;
+
+import info.magnolia.cms.beans.config.ContentRepository;
+import info.magnolia.cms.core.Content;
+import info.magnolia.cms.core.HierarchyManager;
+import info.magnolia.cms.core.NodeData;
+import info.magnolia.cms.util.NodeDataUtil;
+import info.magnolia.context.MgnlContext;
+
+import java.io.IOException;
+
+import javax.jcr.RepositoryException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.math.NumberUtils;
+
+
+/**
+ * @author molaschi
+ * @version $Id: $
+ */
+public class PzcServlet extends HttpServlet
+{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1763781795315878360L;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
+ {
+ resp.setContentType("text/plain");
+ String command = req.getParameter("command");
+ final int zoom = NumberUtils.toInt(req.getParameter("zoom"));
+ final int x = NumberUtils.toInt(req.getParameter("x"));
+ final int y = NumberUtils.toInt(req.getParameter("y"));
+ final String id = req.getParameter("id");
+ String handle = req.getParameter("handle");
+ String repository = req.getParameter("repository");
+ if (StringUtils.isBlank(repository))
+ {
+ repository = ContentRepository.WEBSITE;
+ }
+
+ HierarchyManager hm = MgnlContext.getHierarchyManager(repository);
+
+ try
+ {
+ final Content node = hm.getContent(handle);
+ if ("delete".equals(command))
+ {
+ NodeData nd = node.getNodeData(id);
+ if (nd != null)
+ {
+ nd.delete();
+ node.save();
+ }
+ resp.getWriter().println("true");
+ }
+ else
+ {
+ final String systemRepository = repository;
+ MgnlContext.doInSystemContext(new MgnlContext.Op<Void, RepositoryException>()
+ {
+
+ public Void exec() throws RepositoryException
+ {
+ HierarchyManager hm = MgnlContext.getHierarchyManager(systemRepository);
+ try
+ {
+ Content systemNode = hm.getContent(node.getHandle());
+ NodeDataUtil.getOrCreateAndSet(systemNode, id, new StringBuffer()
+ .append(zoom)
+ .append("|")
+ .append(x)
+ .append("|")
+ .append(y)
+ .toString());
+ systemNode.save();
+ }
+ catch (RepositoryException ex)
+ {
+ }
+ return null;
+ }
+ }, true);
+ resp.getWriter().println("true");
+ }
+ }
+ catch (RepositoryException ex)
+ {
+ resp.getWriter().println("false");
+ }
+
+ resp.flushBuffer();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
+ {
+ doGet(req, resp);
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-06-16 10:51:16
|
Revision: 3537
http://openutils.svn.sourceforge.net/openutils/?rev=3537&view=rev
Author: fgiust
Date: 2011-06-16 10:51:10 +0000 (Thu, 16 Jun 2011)
Log Message:
-----------
MEDIA-233 Hardcoded "flv" metadata extension on BaseVideoTypeHandler
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogFileVideo.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogFileVideo.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogFileVideo.java 2011-06-14 15:24:12 UTC (rev 3536)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/dialog/DialogFileVideo.java 2011-06-16 10:51:10 UTC (rev 3537)
@@ -49,6 +49,8 @@
{
this.getImageExtensions().add("flv");
this.getImageExtensions().add("swf");
+ this.getImageExtensions().add("mp4");
+ this.getImageExtensions().add("m4v");
}
/**
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-06-14 15:24:12 UTC (rev 3536)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseVideoTypeHandler.java 2011-06-16 10:51:10 UTC (rev 3537)
@@ -67,7 +67,7 @@
if (flvMetaData != null)
{
- NodeDataUtil.getOrCreateAndSet(media, METADATA_EXTENSION, "flv");
+ NodeDataUtil.getOrCreateAndSet(media, METADATA_EXTENSION, getExtension(media));
NodeDataUtil.getOrCreateAndSet(media, METADATA_WIDTH, flvMetaData.getWidth());
NodeDataUtil.getOrCreateAndSet(media, METADATA_HEIGHT, flvMetaData.getHeight());
NodeDataUtil.getOrCreateAndSet(media, METADATA_DURATION, flvMetaData.getDuration());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-06 17:21:27
|
Revision: 3690
http://openutils.svn.sourceforge.net/openutils/?rev=3690&view=rev
Author: fgiust
Date: 2011-11-06 17:21:20 +0000 (Sun, 06 Nov 2011)
Log Message:
-----------
avoid excessive synchronization on activation/delete
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaActivationCommand.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaActivationCommand.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaActivationCommand.java 2011-11-06 17:16:05 UTC (rev 3689)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/commands/MediaActivationCommand.java 2011-11-06 17:21:20 UTC (rev 3690)
@@ -24,10 +24,8 @@
import info.magnolia.cms.exchange.ExchangeException;
import info.magnolia.cms.i18n.MessagesManager;
import info.magnolia.cms.util.AlertUtil;
-import info.magnolia.cms.util.ExclusiveWrite;
import info.magnolia.cms.util.Rule;
import info.magnolia.context.Context;
-import info.magnolia.context.MgnlContext;
import info.magnolia.module.admininterface.commands.ActivationCommand;
import java.util.ArrayList;
@@ -63,54 +61,52 @@
@Override
public boolean execute(Context ctx)
{
- synchronized (ExclusiveWrite.getInstance())
+ try
{
- try
+ Content thisState = getNode(ctx);
+ String parentPath = StringUtils.substringBeforeLast(thisState.getHandle(), "/");
+ if (StringUtils.isEmpty(parentPath))
{
- Content thisState = getNode(ctx);
- String parentPath = StringUtils.substringBeforeLast(thisState.getHandle(), "/");
- if (StringUtils.isEmpty(parentPath))
+ parentPath = "/";
+ }
+ // make multiple activations instead of a big bulp
+ if (super.isRecursive())
+ {
+ List versionMap = getVersionMap();
+ if (versionMap == null)
{
- parentPath = "/";
+ activateRecursive(parentPath, thisState, ctx);
}
- // make multiple activations instead of a big bulp
- if (super.isRecursive())
+ else
{
- List versionMap = getVersionMap();
- if (versionMap == null)
+ activateRecursive(ctx, versionMap);
+ }
+ }
+ else
+ {
+ if (StringUtils.isNotEmpty(getVersion()))
+ {
+ try
{
- activateRecursive(parentPath, thisState, ctx);
+ thisState = thisState.getVersionedContent(getVersion());
}
- else
+ catch (RepositoryException re)
{
- activateRecursive(ctx, versionMap);
+ log.error("Failed to get version " + getVersion() + " for " + thisState.getHandle(), re);
}
}
- else
- {
- if (StringUtils.isNotEmpty(getVersion()))
- {
- try
- {
- thisState = thisState.getVersionedContent(getVersion());
- }
- catch (RepositoryException re)
- {
- log.error("Failed to get version " + getVersion() + " for " + thisState.getHandle(), re);
- }
- }
- activateRecursiveOneLevel(parentPath, thisState);
- }
+ activateRecursiveOneLevel(parentPath, thisState);
}
- catch (Exception e)
- {
- log.error("can't activate", e);
- AlertUtil.setException(MessagesManager.get("tree.error.activate"), e, ctx);
- return false;
- }
- log.info("exec successfully.");
- return true;
}
+ catch (Exception e)
+ {
+ log.error("can't activate", e);
+ AlertUtil.setException(MessagesManager.get("tree.error.activate"), e, ctx);
+ return false;
+ }
+ log.info("exec successfully.");
+ return true;
+
}
/**
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2011-11-06 17:16:05 UTC (rev 3689)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2011-11-06 17:21:20 UTC (rev 3690)
@@ -29,7 +29,6 @@
import info.magnolia.cms.security.Permission;
import info.magnolia.cms.util.AlertUtil;
import info.magnolia.cms.util.ContentUtil;
-import info.magnolia.cms.util.ExclusiveWrite;
import info.magnolia.commands.CommandsManager;
import info.magnolia.context.Context;
import info.magnolia.context.MgnlContext;
@@ -295,11 +294,8 @@
try
{
- synchronized (ExclusiveWrite.getInstance())
- {
- hm.delete(this.node);
- hm.save();
- }
+ hm.delete(this.node);
+ hm.save();
}
catch (RepositoryException ex)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fg...@us...> - 2011-11-06 18:15:22
|
Revision: 3692
http://openutils.svn.sourceforge.net/openutils/?rev=3692&view=rev
Author: fgiust
Date: 2011-11-06 18:15:15 +0000 (Sun, 06 Nov 2011)
Log Message:
-----------
MEDIA-267 Avoid in-memory buffering of big files for extracting mp4 metadata
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/ExternalVideoTypeHandler.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/VideoMedataUtils.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/ExternalVideoTypeHandler.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/ExternalVideoTypeHandler.java 2011-11-06 17:48:11 UTC (rev 3691)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/ExternalVideoTypeHandler.java 2011-11-06 18:15:15 UTC (rev 3692)
@@ -229,6 +229,15 @@
}
String downloadUrl = getUrl(media);
+ return parseFLVMetaData(downloadUrl);
+ }
+
+ /**
+ * @param downloadUrl
+ * @return
+ */
+ private VideoMetaData parseFLVMetaData(String downloadUrl)
+ {
for (ExternalVideoSupport external : videoSupportHandlers)
{
if (external.isEnabled() && external.canHandle(downloadUrl))
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/VideoMedataUtils.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/VideoMedataUtils.java 2011-11-06 17:48:11 UTC (rev 3691)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/VideoMedataUtils.java 2011-11-06 18:15:15 UTC (rev 3692)
@@ -19,8 +19,12 @@
package net.sourceforge.openutils.mgnlmedia.media.utils;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.nio.ByteBuffer;
@@ -186,30 +190,36 @@
{
VideoMetaData meta = new VideoMetaData();
- InputStream is = stream;
- ByteBuffer bb = ByteBuffer.wrap(IOUtils.toByteArray(is));
- IsoBufferWrapper buf = new IsoBufferWrapper(bb);
- // Properties properties = new Properties();
- // properties.setProperty(MovieBox.TYPE, "com.coremedia.iso.boxes.MovieBox()");
- // PropertyBoxParserImpl boxParser = new PropertyBoxParserImpl(properties);
- IsoFile isoFile = new IsoFile(buf); // , boxParser);
- isoFile.parse();
+ File tempFile = File.createTempFile("medatadaextraction", ".mp4");
+ OutputStream out = new BufferedOutputStream(new FileOutputStream(tempFile));
+ IOUtils.copy(stream, out);
+ out.close();
- MovieBox box = (MovieBox) IsoFileConvenienceHelper.get(isoFile, MovieBox.TYPE);
- meta.setDuration(box.getMovieHeaderBox().getDuration() / box.getMovieHeaderBox().getTimescale());
- meta.setFrameRate(box.getMovieHeaderBox().getRate());
- // meta.setCreatedDate(box.getMovieHeaderBox().getCreationTime());
+ try
+ {
+ IsoBufferWrapper buf = new IsoBufferWrapper(tempFile);
+ IsoFile isoFile = new IsoFile(buf);
+ isoFile.parse();
- for (long trackid : box.getTrackNumbers())
- {
- TrackHeaderBox thb = box.getTrackMetaData(trackid).getTrackBox().getTrackHeaderBox();
- if (thb.getWidth() > 0)
+ MovieBox box = (MovieBox) IsoFileConvenienceHelper.get(isoFile, MovieBox.TYPE);
+ meta.setDuration(box.getMovieHeaderBox().getDuration() / box.getMovieHeaderBox().getTimescale());
+ meta.setFrameRate(box.getMovieHeaderBox().getRate());
+
+ for (long trackid : box.getTrackNumbers())
{
- meta.setWidth((long) thb.getWidth());
- meta.setHeight((long) thb.getHeight());
- break;
+ TrackHeaderBox thb = box.getTrackMetaData(trackid).getTrackBox().getTrackHeaderBox();
+ if (thb.getWidth() > 0)
+ {
+ meta.setWidth((long) thb.getWidth());
+ meta.setHeight((long) thb.getHeight());
+ break;
+ }
}
}
+ finally
+ {
+ tempFile.delete();
+ }
return meta;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2011-12-25 08:18:36
|
Revision: 3731
http://openutils.svn.sourceforge.net/openutils/?rev=3731&view=rev
Author: diego_schivo
Date: 2011-12-25 08:18:30 +0000 (Sun, 25 Dec 2011)
Log Message:
-----------
MEDIA-277 Lazy resolution creation
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java 2011-12-19 10:17:54 UTC (rev 3730)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/lifecycle/MediaModule.java 2011-12-25 08:18:30 UTC (rev 3731)
@@ -78,6 +78,8 @@
private List playlistLinks = new ArrayList();
+ private boolean lazyResolutionCreation;
+
/**
* Constructor
*/
@@ -291,4 +293,22 @@
{
this.playlistLinks.add(playlistLink);
}
+
+ /**
+ * Returns the lazyResolutionCreation.
+ * @return the lazyResolutionCreation
+ */
+ public boolean isLazyResolutionCreation()
+ {
+ return lazyResolutionCreation;
+ }
+
+ /**
+ * Sets the lazyResolutionCreation.
+ * @param lazyResolutionCreation the lazyResolutionCreation to set
+ */
+ public void setLazyResolutionCreation(boolean lazyResolutionCreation)
+ {
+ this.lazyResolutionCreation = lazyResolutionCreation;
+ }
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2011-12-19 10:17:54 UTC (rev 3730)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/tags/el/MediaEl.java 2011-12-25 08:18:30 UTC (rev 3731)
@@ -303,7 +303,7 @@
}
}
- if (!ImageUtils.checkOrCreateResolution(media, resolution, null))
+ if (!ImageUtils.checkOrCreateResolution(media, resolution, null, module().isLazyResolutionCreation()))
{
return null;
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java 2011-12-19 10:17:54 UTC (rev 3730)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/uri/MediaURI2RepositoryMapping.java 2011-12-25 08:18:30 UTC (rev 3731)
@@ -20,12 +20,17 @@
package net.sourceforge.openutils.mgnlmedia.media.uri;
import info.magnolia.cms.beans.config.URI2RepositoryMapping;
+import info.magnolia.cms.core.Content;
+import info.magnolia.cms.core.NodeData;
+import info.magnolia.cms.util.ContentUtil;
import info.magnolia.context.MgnlContext;
import info.magnolia.link.Link;
import javax.jcr.RepositoryException;
+import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
import net.sourceforge.openutils.mgnlmedia.media.tags.el.MediaEl;
+import net.sourceforge.openutils.mgnlmedia.media.utils.ImageUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
@@ -97,4 +102,39 @@
return handle;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getHandle(String uri)
+ {
+ String handle = super.getHandle(uri);
+ if (MediaEl.module().isLazyResolutionCreation())
+ {
+ String resolutionsName = "resolutions";
+ String search = "/" + resolutionsName + "/";
+ int p = StringUtils.indexOf(handle, search);
+ if (p != -1)
+ {
+ String mediaPath = handle.substring(0, p);
+ Content mediaNode = ContentUtil.getContent(MediaModule.REPO, mediaPath);
+ if (mediaNode != null)
+ {
+ Content resolutionsNode = ContentUtil.getContent(mediaNode, resolutionsName);
+ String ndName = StringUtils.substringBefore(handle.substring(p + search.length()), "/");
+ if (resolutionsNode != null && !StringUtils.isEmpty(ndName))
+ {
+ NodeData nd = resolutionsNode.getNodeData(ndName);
+ String resolution = nd.getAttribute("resolutionNotYetCreated");
+ if (!StringUtils.isEmpty(resolution))
+ {
+ ImageUtils.checkOrCreateResolution(mediaNode, resolution, null);
+ }
+ }
+ }
+ }
+ }
+ return handle;
+ }
+
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java 2011-12-19 10:17:54 UTC (rev 3730)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java 2011-12-25 08:18:30 UTC (rev 3731)
@@ -455,10 +455,10 @@
* @throws RepositoryException exception in jcr operations
* @throws IOException exception converting image to jpg
*/
- public static void saveResolution(BufferedImage image, Content saveTo, String extension, float quality,
+ public static NodeData saveResolution(BufferedImage image, Content saveTo, String extension, float quality,
boolean forceProgressive) throws RepositoryException, IOException
{
- saveResolution(image, saveTo, null, extension, quality, forceProgressive);
+ return saveResolution(image, saveTo, null, extension, quality, forceProgressive);
}
/**
@@ -472,7 +472,7 @@
* @throws RepositoryException exception in jcr operations
* @throws IOException exception converting image to jpg
*/
- public static void saveResolution(BufferedImage image, Content saveTo, String name, String extension,
+ public static NodeData saveResolution(BufferedImage image, Content saveTo, String name, String extension,
float quality, boolean forceProgressive) throws RepositoryException, IOException
{
@@ -564,6 +564,8 @@
nd.setAttribute(FileProperties.PROPERTY_SIZE, "" + count);
resolutions.save();
+
+ return nd;
}
finally
{
@@ -746,7 +748,13 @@
public static boolean checkOrCreateResolution(final Content media, final String resolutionTarget,
String nodeDataName)
{
+ return checkOrCreateResolution(media, resolutionTarget, nodeDataName, false);
+ }
+ public static boolean checkOrCreateResolution(final Content media, final String resolutionTarget,
+ String nodeDataName, final boolean lazy)
+ {
+
Content resolutions = getResolutionsNode(media);
String resolution = resolutionTarget;
@@ -759,7 +767,19 @@
{
if (resolutions != null && resolutions.hasNodeData(getResolutionPath(resolution)))
{
- return true;
+ if (lazy)
+ {
+ return true;
+ }
+ else if (!StringUtils.isEmpty(resolutions.getNodeData(getResolutionPath(resolution)).getAttribute(
+ "resolutionNotYetCreated")))
+ {
+ // continue: replace the fake image with the actual one
+ }
+ else
+ {
+ return true;
+ }
}
}
catch (RepositoryException e1)
@@ -862,7 +882,14 @@
BufferedImage img;
try
{
- img = ImageUtils.getImageForResolution(original, resolutionstring, params);
+ if (lazy)
+ {
+ img = new BufferedImage(1, 1, getType(original.getColorModel()));
+ }
+ else
+ {
+ img = ImageUtils.getImageForResolution(original, resolutionstring, params);
+ }
}
catch (IllegalArgumentException e)
{
@@ -893,13 +920,20 @@
forceProgressive = true;
}
- ImageUtils.saveResolution(
+ NodeData nd = ImageUtils.saveResolution(
img,
node,
resolutioNodeName,
outputextension,
quality,
forceProgressive);
+ if (lazy)
+ {
+ nd.setAttribute(
+ "resolutionNotYetCreated",
+ StringUtils.removeStart(resolutioNodeName, "res-"));
+ nd.getParent().save();
+ }
}
catch (RepositoryException e)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2011-12-28 07:41:25
|
Revision: 3732
http://openutils.svn.sourceforge.net/openutils/?rev=3732&view=rev
Author: diego_schivo
Date: 2011-12-28 07:41:17 +0000 (Wed, 28 Dec 2011)
Log Message:
-----------
MEDIA-277 skipRendering
Modified Paths:
--------------
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/BaseImageResolutionProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInAndFillWithBandsImageResolutionProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInImageResolutionProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeCropCenteredImageResolutionProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeNoCropImageResolutionProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/RoundedCornersProcessor.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/crop/PzcImageProcessor.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -71,8 +71,18 @@
float oX = oWidth * zoom * factor;
float oY = oX * oHeight / oWidth;
- BufferedImage filled = ImageUtils.resizeImage(original, (int) oX, (int) oY);
- return ImageUtils.cropImage(filled, (int) (panX * factor), (int) (panY * factor), x, y);
+ BufferedImage filled = ImageUtils.resizeImage(
+ original,
+ (int) oX,
+ (int) oY,
+ "true".equals(parameters.get("skipRendering")));
+ return ImageUtils.cropImage(
+ filled,
+ (int) (panX * factor),
+ (int) (panY * factor),
+ x,
+ y,
+ "true".equals(parameters.get("skipRendering")));
}
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/BaseImageResolutionProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/BaseImageResolutionProcessor.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/BaseImageResolutionProcessor.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -50,9 +50,14 @@
*/
public BufferedImage fitIn(BufferedImage original, int x, int y)
{
- return resizeInOut(original, x, y, false, null);
+ return fitIn(original, x, y, false);
}
+ public BufferedImage fitIn(BufferedImage original, int x, int y, boolean skipRendering)
+ {
+ return resizeInOut(original, x, y, false, null, skipRendering);
+ }
+
/**
* Resize an image to fit into the rect x, y and fill empty spaces with given background color
* @param original original image
@@ -63,9 +68,14 @@
*/
public BufferedImage fitIn(BufferedImage original, int x, int y, Color background)
{
- return resizeInOut(original, x, y, true, background);
+ return fitIn(original, x, y, background, false);
}
+ public BufferedImage fitIn(BufferedImage original, int x, int y, Color background, boolean skipRendering)
+ {
+ return resizeInOut(original, x, y, true, background, skipRendering);
+ }
+
/**
* Resize image to fit in x,y. If fit is true the resulting image is x,y and if there are two empty bands they are
* filled with backgroung color.
@@ -78,6 +88,11 @@
*/
protected BufferedImage resizeInOut(BufferedImage original, int x, int y, boolean fit, Color background)
{
+ return resizeInOut(original, x, y, fit, background, false);
+ }
+
+ protected BufferedImage resizeInOut(BufferedImage original, int x, int y, boolean fit, Color background, boolean skipRendering)
+ {
if (original == null)
{
throw new IllegalArgumentException("input image is null");
@@ -104,7 +119,7 @@
int newX = (int) Math.round(oX * ratio);
int newY = (int) Math.round(oY * ratio);
- return ImageUtils.resizeImage(original, newX, newY, fit ? x : newX, fit ? y : newY, background);
+ return ImageUtils.resizeImage(original, newX, newY, fit ? x : newX, fit ? y : newY, background, skipRendering);
}
/**
@@ -117,6 +132,11 @@
*/
public BufferedImage fill(BufferedImage original, int x, int y, boolean cropCentered)
{
+ return fill(original, x, y, cropCentered, false);
+ }
+
+ public BufferedImage fill(BufferedImage original, int x, int y, boolean cropCentered, boolean skipRendering)
+ {
int oWidth = original.getWidth();
int oHeight = original.getHeight();
if (x == oWidth && y == oHeight)
@@ -133,15 +153,15 @@
if (oDelta >= delta)
{
int newX = (int) (y * oX / oY);
- BufferedImage filled = ImageUtils.resizeImage(original, newX, y);
- return cropCentered ? ImageUtils.cropImage(filled, (newX - x) / 2, 0, x, y) : filled;
+ BufferedImage filled = ImageUtils.resizeImage(original, newX, y, skipRendering);
+ return cropCentered ? ImageUtils.cropImage(filled, (newX - x) / 2, 0, x, y, skipRendering) : filled;
}
else
// if (oDelta < delta)
{
int newY = (int) (x * oY / oX);
- BufferedImage filled = ImageUtils.resizeImage(original, x, newY);
- return cropCentered ? ImageUtils.cropImage(filled, 0, (newY - y) / 2, x, y) : filled;
+ BufferedImage filled = ImageUtils.resizeImage(original, x, newY, skipRendering);
+ return cropCentered ? ImageUtils.cropImage(filled, 0, (newY - y) / 2, x, y, skipRendering) : filled;
}
}
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInAndFillWithBandsImageResolutionProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInAndFillWithBandsImageResolutionProcessor.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInAndFillWithBandsImageResolutionProcessor.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -62,6 +62,6 @@
log.error("Invalid color code: " + hexColor, e);
}
}
- return fitIn(original, x, y, color);
+ return fitIn(original, x, y, color, "true".equals(parameters.get("skipRendering")));
}
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInImageResolutionProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInImageResolutionProcessor.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/FitInImageResolutionProcessor.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -36,7 +36,7 @@
*/
public BufferedImage getImageForResolution(BufferedImage original, int x, int y, Map<String, String> parameters)
{
- return fitIn(original, x, y);
+ return fitIn(original, x, y, "true".equals(parameters.get("skipRendering")));
}
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeCropCenteredImageResolutionProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeCropCenteredImageResolutionProcessor.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeCropCenteredImageResolutionProcessor.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -37,7 +37,7 @@
*/
public BufferedImage getImageForResolution(BufferedImage original, int x, int y, Map<String, String> parameters)
{
- return fill(original, x, y, true);
+ return fill(original, x, y, true, "true".equals(parameters.get("skipRendering")));
}
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeNoCropImageResolutionProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeNoCropImageResolutionProcessor.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/ResizeNoCropImageResolutionProcessor.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -37,7 +37,7 @@
*/
public BufferedImage getImageForResolution(BufferedImage original, int x, int y, Map<String, String> parameters)
{
- return fill(original, x, y, false);
+ return fill(original, x, y, false, "true".equals(parameters.get("skipRendering")));
}
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/RoundedCornersProcessor.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/RoundedCornersProcessor.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/processors/RoundedCornersProcessor.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -80,7 +80,7 @@
log.error("Invalid color code: " + hexColor, e);
}
}
- return ImageUtils.addRoundedCorners(image, backgroundColor, radius);
+ return ImageUtils.addRoundedCorners(image, backgroundColor, radius, "true".equals(parameters.get("skipRendering")));
}
return image;
}
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java 2011-12-25 08:18:30 UTC (rev 3731)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java 2011-12-28 07:41:17 UTC (rev 3732)
@@ -172,9 +172,14 @@
*/
public static BufferedImage resizeImage(BufferedImage original, int x, int y)
{
- return resizeImage(original, x, y, x, y, null);
+ return resizeImage(original, x, y, false);
}
+ public static BufferedImage resizeImage(BufferedImage original, int x, int y, boolean skipRendering)
+ {
+ return resizeImage(original, x, y, x, y, null, skipRendering);
+ }
+
/**
* Resize an image to x,y
* @param original original image
@@ -188,6 +193,12 @@
public static BufferedImage resizeImage(BufferedImage original, int x, int y, int canvasX, int canvasY,
Color background)
{
+ return resizeImage(original, x, y, canvasX, canvasY, background, false);
+ }
+
+ public static BufferedImage resizeImage(BufferedImage original, int x, int y, int canvasX, int canvasY,
+ Color background, boolean skipRendering)
+ {
if (x <= 0)
{
x = 1;
@@ -222,54 +233,58 @@
+ canvasY
+ "]");
}
- Graphics2D graphics2D = resizedImage.createGraphics();
- graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
- if (canvasX > x || canvasY > y)
+ if (!skipRendering)
{
- graphics2D.clearRect(0, 0, canvasX, canvasY);
+ Graphics2D graphics2D = resizedImage.createGraphics();
- if (background == null && original.getColorModel().getTransparency() == Transparency.OPAQUE)
+ graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+ if (canvasX > x || canvasY > y)
{
- background = Color.WHITE;
- }
- // fill bands
- if (background != null)
- {
- graphics2D.setColor(background);
+ graphics2D.clearRect(0, 0, canvasX, canvasY);
- if (canvasX > x)
+ if (background == null && original.getColorModel().getTransparency() == Transparency.OPAQUE)
{
- graphics2D.fillRect(0, 0, (canvasX - x) / 2, canvasY);
- graphics2D.fillRect(x + (canvasX - x) / 2, 0, canvasX, canvasY);
+ background = Color.WHITE;
}
- if (canvasY > y)
+ // fill bands
+ if (background != null)
{
- graphics2D.fillRect(0, 0, canvasX, (canvasY - y) / 2);
- graphics2D.fillRect(0, y + (canvasY - y) / 2, canvasX, canvasY);
+ graphics2D.setColor(background);
+
+ if (canvasX > x)
+ {
+ graphics2D.fillRect(0, 0, (canvasX - x) / 2, canvasY);
+ graphics2D.fillRect(x + (canvasX - x) / 2, 0, canvasX, canvasY);
+ }
+ if (canvasY > y)
+ {
+ graphics2D.fillRect(0, 0, canvasX, (canvasY - y) / 2);
+ graphics2D.fillRect(0, y + (canvasY - y) / 2, canvasX, canvasY);
+ }
}
}
- }
- graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+ graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
- AffineTransform at = new AffineTransform();
- double delta = ((double) x) / original.getWidth();
- if (x > original.getWidth())
- {
- at.scale(delta, delta);
- at.translate((canvasX - x) / (2 * delta), (canvasY - y) / (2 * delta));
+ AffineTransform at = new AffineTransform();
+ double delta = ((double) x) / original.getWidth();
+ if (x > original.getWidth())
+ {
+ at.scale(delta, delta);
+ at.translate((canvasX - x) / (2 * delta), (canvasY - y) / (2 * delta));
+ }
+ else if (x < original.getWidth())
+ {
+ original = getScaledInstance(original, x, y, RenderingHints.VALUE_INTERPOLATION_BILINEAR, true, false);
+ at.translate((canvasX - x) / 2.0, (canvasY - y) / 2.0);
+ }
+
+ graphics2D.drawImage(original, at, null);
+ graphics2D.dispose();
}
- else if (x < original.getWidth())
- {
- original = getScaledInstance(original, x, y, RenderingHints.VALUE_INTERPOLATION_BILINEAR, true);
- at.translate((canvasX - x) / 2.0, (canvasY - y) / 2.0);
- }
- graphics2D.drawImage(original, at, null);
- graphics2D.dispose();
-
return resizedImage;
}
@@ -290,6 +305,12 @@
public static BufferedImage getScaledInstance(BufferedImage img, int targetWidth, int targetHeight, Object hint,
boolean higherQuality)
{
+ return getScaledInstance(img, targetWidth, targetHeight, hint, higherQuality, false);
+ }
+
+ public static BufferedImage getScaledInstance(BufferedImage img, int targetWidth, int targetHeight, Object hint,
+ boolean higherQuality, boolean skipRendering)
+ {
int type = (img.getTransparency() == Transparency.OPAQUE)
? BufferedImage.TYPE_INT_RGB
: BufferedImage.TYPE_INT_ARGB;
@@ -333,10 +354,13 @@
}
BufferedImage tmp = new BufferedImage(w, h, type);
- Graphics2D g2 = tmp.createGraphics();
- g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint);
- g2.drawImage(ret, 0, 0, w, h, null);
- g2.dispose();
+ if (!skipRendering)
+ {
+ Graphics2D g2 = tmp.createGraphics();
+ g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint);
+ g2.drawImage(ret, 0, 0, w, h, null);
+ g2.dispose();
+ }
ret = tmp;
}
@@ -356,16 +380,24 @@
*/
public static BufferedImage cropImage(BufferedImage original, int left, int top, int width, int height)
{
+ return cropImage(original, left, top, width, height, false);
+ }
+
+ public static BufferedImage cropImage(BufferedImage original, int left, int top, int width, int height, boolean skipRendering)
+ {
BufferedImage resizedImage = new BufferedImage(width, height, getType(original.getColorModel()));
- Graphics2D graphics2D = resizedImage.createGraphics();
- graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
- graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_DEFAULT);
+ if (!skipRendering)
+ {
+ Graphics2D graphics2D = resizedImage.createGraphics();
+ graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+ graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_DEFAULT);
- AffineTransform at = new AffineTransform();
- at.translate(-left, -top);
- graphics2D.drawImage(original, at, null);
- graphics2D.dispose();
+ AffineTransform at = new AffineTransform();
+ at.translate(-left, -top);
+ graphics2D.drawImage(original, at, null);
+ graphics2D.dispose();
+ }
return resizedImage;
}
@@ -379,6 +411,11 @@
*/
public static BufferedImage addRoundedCorners(BufferedImage original, Color backgroundColor, int radius)
{
+ return addRoundedCorners(original, backgroundColor, radius, false);
+ }
+
+ public static BufferedImage addRoundedCorners(BufferedImage original, Color backgroundColor, int radius, boolean skipRendering)
+ {
int originalImageType = getType(original.getColorModel());
int roundedCornersImageType = BufferedImage.TYPE_4BYTE_ABGR;
@@ -409,37 +446,40 @@
throw new RuntimeException("NegativeArraySizeException caught when adding rounded corners");
}
- Graphics2D roundedGraphics2D = roundedImage.createGraphics();
- roundedGraphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- roundedGraphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+ if (!skipRendering)
+ {
+ Graphics2D roundedGraphics2D = roundedImage.createGraphics();
+ roundedGraphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ roundedGraphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
- roundedGraphics2D.setColor(Color.WHITE);
- roundedGraphics2D.fillRoundRect(0, 0, original.getWidth(), original.getHeight(), radius, radius);
- roundedGraphics2D.setComposite(AlphaComposite.SrcIn);
- roundedGraphics2D.drawImage(original, 0, 0, original.getWidth(), original.getHeight(), null);
+ roundedGraphics2D.setColor(Color.WHITE);
+ roundedGraphics2D.fillRoundRect(0, 0, original.getWidth(), original.getHeight(), radius, radius);
+ roundedGraphics2D.setComposite(AlphaComposite.SrcIn);
+ roundedGraphics2D.drawImage(original, 0, 0, original.getWidth(), original.getHeight(), null);
- if (backgroundColor != null)
- {
+ if (backgroundColor != null)
+ {
- BufferedImage destImage;
- try
- {
- destImage = new BufferedImage(original.getWidth(), original.getHeight(), originalImageType);
+ BufferedImage destImage;
+ try
+ {
+ destImage = new BufferedImage(original.getWidth(), original.getHeight(), originalImageType);
+ }
+ catch (NegativeArraySizeException e)
+ {
+ throw new RuntimeException("NegativeArraySizeException caught when resizing image]");
+ }
+ // draw new image
+ Graphics2D destImageGraphics2D = destImage.createGraphics();
+ destImageGraphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ destImageGraphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+
+ destImageGraphics2D.setBackground(backgroundColor);
+ destImageGraphics2D.clearRect(0, 0, original.getWidth(), original.getHeight());
+ // destImageGraphics2D.setComposite(AlphaComposite.DstIn);
+ destImageGraphics2D.drawImage(roundedImage, 0, 0, original.getWidth(), original.getHeight(), null);
+ return destImage;
}
- catch (NegativeArraySizeException e)
- {
- throw new RuntimeException("NegativeArraySizeException caught when resizing image]");
- }
- // draw new image
- Graphics2D destImageGraphics2D = destImage.createGraphics();
- destImageGraphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- destImageGraphics2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
-
- destImageGraphics2D.setBackground(backgroundColor);
- destImageGraphics2D.clearRect(0, 0, original.getWidth(), original.getHeight());
- // destImageGraphics2D.setComposite(AlphaComposite.DstIn);
- destImageGraphics2D.drawImage(roundedImage, 0, 0, original.getWidth(), original.getHeight(), null);
- return destImage;
}
return roundedImage;
@@ -878,18 +918,15 @@
BufferedImage original = createBufferedImage(image);
Map<String, String> params = parseParameters(resolutionstring);
+ if (lazy)
+ {
+ params.put("skipRendering", "true");
+ }
BufferedImage img;
try
{
- if (lazy)
- {
- img = new BufferedImage(1, 1, getType(original.getColorModel()));
- }
- else
- {
- img = ImageUtils.getImageForResolution(original, resolutionstring, params);
- }
+ img = ImageUtils.getImageForResolution(original, resolutionstring, params);
}
catch (IllegalArgumentException e)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|