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