[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv3677/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: RelatedContentPortlet.java Log Message: CMSC-1167 Add Click to page option to the RelatedContentPortlet See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-1167 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -b -r1.9 -r1.10 --- RelatedContentPortlet.java 12 Jun 2008 15:38:15 - 1.9 +++ RelatedContentPortlet.java 29 Apr 2009 07:48:14 - 1.10 @@ -8,6 +8,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.portlet.ActionRequest; import javax.portlet.PortletException; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; @@ -19,20 +20,29 @@ import com.finalist.cmsc.beans.om.NavigationItem; import com.finalist.cmsc.beans.om.Page; import com.finalist.cmsc.beans.om.Portlet; -import com.finalist.cmsc.portalImpl.PortalConstants; import com.finalist.cmsc.services.sitemanagement.SiteManagement; public class RelatedContentPortlet extends AbstractContentPortlet { + protected static final String RELATED_PAGE = relatedPage; + protected static final String RELATED_WINDOW = relatedWindow; + /** * This regex pattern is used to match the elementId from a contentURL. */ private static final String CONTENTURL_ELEMENTID_PATTERN = /content/([0-9]+); @Override + protected void saveParameters(ActionRequest request, String portletId) { + setPortletParameter(portletId, RELATED_PAGE, request.getParameter(RELATED_PAGE)); + setPortletParameter(portletId, RELATED_WINDOW, request.getParameter(RELATED_WINDOW)); + } + + @Override protected void doView(RenderRequest req, RenderResponse res) throws PortletException, IOException { - String window = req.getPreferences().getValue(WINDOW, null); - String elementId = getRelatedElementId(req, window); + String relatedPage = req.getPreferences().getValue(RELATED_PAGE, null); + String relatedWindow = req.getPreferences().getValue(RELATED_WINDOW, null); + String elementId = getRelatedElementId(req, relatedPage, relatedWindow); if (StringUtils.isNotEmpty(elementId)) { setAttribute(req, ELEMENT_ID, elementId); @@ -42,14 +52,16 @@ @Override protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { - Integer pageid = getCurrentPageId(req); + String relatedPage = req.getPreferences().getValue(RELATED_PAGE, null); + if (StringUtils.isNotEmpty(relatedPage)) { + Integer pageid = Integer.valueOf(relatedPage); String pagepath = SiteManagement.getPath(pageid, true); - if (pagepath != null) { - SetString positions = SiteManagement.getPagePositions(pageid.toString()); +SetString positions = SiteManagement.getPagePositions(relatedPage); ListString orderedPositions = new ArrayListString(positions); Collections.sort(orderedPositions); - setAttribute(req, pagepositions, new ArrayListString(orderedPositions)); +setAttribute(req, relatedpagepositions, new ArrayListString(orderedPositions)); + } } super.doEditDefaults(req, res); } @@ -59,7 +71,6 @@ * tries to retrieve the element in the following order: * * ol -* liFrom the parameter of the current request/li * liFrom contentelement node parameter of the specified portlet/li * liFrom a given contentURL (assumes that the elementId we want is * exactly that elementId)/li @@ -69,48 +80,31 @@ * * @param request * the render request -* @param window -* the specified window (might be codenull/code) +*...@param relatedPage +* the related page (might be codenull/code) +* @param relatedWindow +* the related window (might be codenull/code) * @return elementId if an elementId could be found, codenull/code * otherwise. */ - protected String getRelatedElementId(RenderRequest request, String window) { + protected String getRelatedElementId(RenderRequest request, String relatedPage, String relatedWindow) { String elementId = null; - if (StringUtils.isNotEmpty(window)) { - elementId = getElementIdFromRequestParameters(request, window); - if (StringUtils.isEmpty(elementId)) { -elementId = getElementIdFromScreen(request, window); + if (StringUtils.isNotEmpty(relatedPage)
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv15176/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: Tag: b1_4 RelatedContentPortlet.java Log Message: CMSC-959 - Added two new methods. The first: getElementIdFromContentURL uses a regex to try and find a elementId in the request URL generated by a contentURL. The second is just a convenience method: getElementId, that has protected scope. This allows you to extend and override the portlet class and make your own implementation to get an elementId. See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-959 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -u -b -r1.4.2.1 -r1.4.2.2 --- RelatedContentPortlet.java 21 Apr 2008 10:11:28 - 1.4.2.1 +++ RelatedContentPortlet.java 12 Jun 2008 13:36:40 - 1.4.2.2 @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.portlet.PortletException; import javax.portlet.RenderRequest; @@ -12,7 +14,9 @@ import org.apache.pluto.core.impl.PortletRequestImpl; -import com.finalist.cmsc.beans.om.*; +import com.finalist.cmsc.beans.om.NavigationItem; +import com.finalist.cmsc.beans.om.Page; +import com.finalist.cmsc.beans.om.Portlet; import com.finalist.cmsc.portalImpl.PortalConstants; import com.finalist.cmsc.services.sitemanagement.SiteManagement; @@ -20,12 +24,24 @@ public class RelatedContentPortlet extends AbstractContentPortlet { + /** +* This rexex pattern is uesd to match the elementId from a contentURL. +*/ + private static final String CONTENTURL_ELEMENTID_PATTERN = /content/([0-9]+); + + @Override protected void doView(RenderRequest req, RenderResponse res) throws PortletException, IOException { String window = req.getPreferences().getValue(WINDOW, null); if (!StringUtil.isEmpty(window)) { String elementId = getElementIdFromRequestParameters(req, window); if (StringUtil.isEmpty(elementId)) { elementId = getElementIdFromScreen(req, window); + if (StringUtil.isEmpty(elementId)) { + elementId = getElementIdFromContentURL(req); + if (StringUtil.isEmpty(elementId)) { + elementId = getElementId(req); + } + } } if (!StringUtil.isEmpty(elementId)) { @@ -35,6 +51,19 @@ super.doView(req, res); } + /** +* This method can be overridden to provide your own mechanism for getting +* an elementId. +* +* @param req +*originating RenderRequest +* @return ElementId, defaults to null. +* +*/ + protected String getElementId(RenderRequest req) { + // Extension point + return null; + } private String getElementIdFromScreen(RenderRequest req, String window) { Integer pageId = getCurrentPageId(req); @@ -50,18 +79,15 @@ return null; } - private Integer getCurrentPageId(RenderRequest req) { String pageId = (String) req.getAttribute(PortalConstants.CMSC_OM_PAGE_ID); return Integer.valueOf(pageId); } - private HttpServletRequest getServletRequest(RenderRequest req) { return (HttpServletRequest) ((PortletRequestImpl) req).getRequest(); } - private String getElementIdFromRequestParameters(RenderRequest req, String window) { String requestURL = getServletRequest(req).getRequestURL().toString(); String paramName = /_rp_ + window + _elementId/1_; @@ -74,11 +100,9 @@ } return elementId; } - return null; } - @Override protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { Integer pageid = getCurrentPageId(req); @@ -90,9 +114,16 @@ Collections.sort(orderedPositions); setAttribute(req, pagepositions, new ArrayListString(orderedPositions)); } - super.doEditDefaults(req, res); - } + private String getElementIdFromContentURL(RenderRequest req) { + String requestURL = getServletRequest(req).getRequestURL().toString(); + Pattern pattern = Pattern.compile(CONTENTURL_ELEMENTID_PATTERN); +
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv15423/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: RelatedContentPortlet.java Log Message: CMSC-959 - Added two new methods. The first: getElementIdFromContentURL uses a regex to try and find a elementId in the request URL generated by a contentURL. The second is just a convenience method: getElementId, that has protected scope. This allows you to extend and override the portlet class and make your own implementation to get an elementId. See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-959 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- RelatedContentPortlet.java 10 May 2008 16:31:23 - 1.6 +++ RelatedContentPortlet.java 12 Jun 2008 13:44:17 - 1.7 @@ -4,28 +4,45 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.portlet.PortletException; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.StringUtils; import org.apache.pluto.core.impl.PortletRequestImpl; -import com.finalist.cmsc.beans.om.*; +import com.finalist.cmsc.beans.om.NavigationItem; +import com.finalist.cmsc.beans.om.Page; +import com.finalist.cmsc.beans.om.Portlet; import com.finalist.cmsc.portalImpl.PortalConstants; import com.finalist.cmsc.services.sitemanagement.SiteManagement; -import org.apache.commons.lang.StringUtils; +import net.sf.mmapps.commons.util.StringUtil; public class RelatedContentPortlet extends AbstractContentPortlet { + /** +* This rexex pattern is uesd to match the elementId from a contentURL. +*/ + private static final String CONTENTURL_ELEMENTID_PATTERN = /content/([0-9]+); + + @Override protected void doView(RenderRequest req, RenderResponse res) throws PortletException, IOException { String window = req.getPreferences().getValue(WINDOW, null); if (StringUtils.isNotEmpty(window)) { String elementId = getElementIdFromRequestParameters(req, window); if (StringUtils.isEmpty(elementId)) { elementId = getElementIdFromScreen(req, window); + if (StringUtil.isEmpty(elementId)) { + elementId = getElementIdFromContentURL(req); + if (StringUtil.isEmpty(elementId)) { + elementId = getElementId(req); + } + } } if (StringUtils.isNotEmpty(elementId)) { @@ -35,6 +52,10 @@ super.doView(req, res); } + protected String getElementId(RenderRequest req) { + // Extension point + return null; + } private String getElementIdFromScreen(RenderRequest req, String window) { Integer pageId = getCurrentPageId(req); @@ -50,18 +71,15 @@ return null; } - private Integer getCurrentPageId(RenderRequest req) { String pageId = (String) req.getAttribute(PortalConstants.CMSC_OM_PAGE_ID); return Integer.valueOf(pageId); } - private HttpServletRequest getServletRequest(RenderRequest req) { return (HttpServletRequest) ((PortletRequestImpl) req).getRequest(); } - private String getElementIdFromRequestParameters(RenderRequest req, String window) { String requestURL = getServletRequest(req).getRequestURL().toString(); String paramName = /_rp_ + window + _elementId/1_; @@ -78,7 +96,6 @@ return null; } - @Override protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { Integer pageid = getCurrentPageId(req); @@ -90,9 +107,16 @@ Collections.sort(orderedPositions); setAttribute(req, pagepositions, new ArrayListString(orderedPositions)); } - super.doEditDefaults(req, res); - } + private String getElementIdFromContentURL(RenderRequest req) { + String requestURL = getServletRequest(req).getRequestURL().toString(); + Pattern pattern = Pattern.compile(CONTENTURL_ELEMENTID_PATTERN); + Matcher matcher = pattern.matcher(requestURL); + if (matcher.find() matcher.groupCount() = 1) { + return matcher.group(1); +
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv17459/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: Tag: b1_4 RelatedContentPortlet.java Log Message: CMSC-959 - formatting + javadoc See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-959 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.4.2.2 retrieving revision 1.4.2.3 diff -u -b -r1.4.2.2 -r1.4.2.3 --- RelatedContentPortlet.java 12 Jun 2008 13:36:40 - 1.4.2.2 +++ RelatedContentPortlet.java 12 Jun 2008 14:57:58 - 1.4.2.3 @@ -3,6 +3,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -12,6 +13,8 @@ import javax.portlet.RenderResponse; import javax.servlet.http.HttpServletRequest; +import net.sf.mmapps.commons.util.StringUtil; + import org.apache.pluto.core.impl.PortletRequestImpl; import com.finalist.cmsc.beans.om.NavigationItem; @@ -20,12 +23,10 @@ import com.finalist.cmsc.portalImpl.PortalConstants; import com.finalist.cmsc.services.sitemanagement.SiteManagement; -import net.sf.mmapps.commons.util.StringUtil; - public class RelatedContentPortlet extends AbstractContentPortlet { /** -* This rexex pattern is uesd to match the elementId from a contentURL. +* This regex pattern is used to match the elementId from a contentURL. */ private static final String CONTENTURL_ELEMENTID_PATTERN = /content/([0-9]+); @@ -39,7 +40,7 @@ if (StringUtil.isEmpty(elementId)) { elementId = getElementIdFromContentURL(req); if (StringUtil.isEmpty(elementId)) { - elementId = getElementId(req); + elementId = getElementId(req, window); } } } @@ -51,43 +52,34 @@ super.doView(req, res); } + @Override + protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { + Integer pageid = getCurrentPageId(req); + String pagepath = SiteManagement.getPath(pageid, true); + + if (pagepath != null) { + SetString positions = SiteManagement.getPagePositions(pageid.toString()); + ListString orderedPositions = new ArrayListString(positions); + Collections.sort(orderedPositions); + setAttribute(req, pagepositions, new ArrayListString(orderedPositions)); + } + super.doEditDefaults(req, res); + } + /** -* This method can be overridden to provide your own mechanism for getting -* an elementId. +* This method can be overridden to provide your own mechanism for getting an +* elementId. The default implementation returns codenull/code. * * @param req *originating RenderRequest -* @return ElementId, defaults to null. -* +* @param window +* the passed 'window' parameter. +* @return the elementId */ - protected String getElementId(RenderRequest req) { - // Extension point + protected String getElementId(RenderRequest req, String window) { return null; } - private String getElementIdFromScreen(RenderRequest req, String window) { - Integer pageId = getCurrentPageId(req); - NavigationItem item = SiteManagement.getNavigationItem(pageId); - if (item instanceof Page) { - Page page = (Page) item; - int portletId = page.getPortlet(window); - Portlet portlet = SiteManagement.getPortlet(portletId); - if (portlet != null) { - return portlet.getParameterValue(CONTENTELEMENT); - } - } - return null; - } - - private Integer getCurrentPageId(RenderRequest req) { - String pageId = (String) req.getAttribute(PortalConstants.CMSC_OM_PAGE_ID); - return Integer.valueOf(pageId); - } - - private HttpServletRequest getServletRequest(RenderRequest req) { - return (HttpServletRequest) ((PortletRequestImpl) req).getRequest(); - } - private String getElementIdFromRequestParameters(RenderRequest req,
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv17964/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: RelatedContentPortlet.java Log Message: CMSC-959 - formatting + javadoc + typo's See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-959 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -b -r1.7 -r1.8 --- RelatedContentPortlet.java 12 Jun 2008 13:44:17 - 1.7 +++ RelatedContentPortlet.java 12 Jun 2008 15:12:21 - 1.8 @@ -3,6 +3,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -12,6 +13,8 @@ import javax.portlet.RenderResponse; import javax.servlet.http.HttpServletRequest; +import net.sf.mmapps.commons.util.StringUtil; + import org.apache.commons.lang.StringUtils; import org.apache.pluto.core.impl.PortletRequestImpl; @@ -21,12 +24,10 @@ import com.finalist.cmsc.portalImpl.PortalConstants; import com.finalist.cmsc.services.sitemanagement.SiteManagement; -import net.sf.mmapps.commons.util.StringUtil; - public class RelatedContentPortlet extends AbstractContentPortlet { /** -* This rexex pattern is uesd to match the elementId from a contentURL. +* This regex pattern is used to match the elementId from a contentURL. */ private static final String CONTENTURL_ELEMENTID_PATTERN = /content/([0-9]+); @@ -39,8 +40,8 @@ elementId = getElementIdFromScreen(req, window); if (StringUtil.isEmpty(elementId)) { elementId = getElementIdFromContentURL(req); - if (StringUtil.isEmpty(elementId)) { - elementId = getElementId(req); + if (StringUtils.isEmpty(elementId)) { + elementId = getElementId(req, window); } } } @@ -52,32 +53,32 @@ super.doView(req, res); } - protected String getElementId(RenderRequest req) { - // Extension point - return null; - } + @Override + protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { + Integer pageid = getCurrentPageId(req); + String pagepath = SiteManagement.getPath(pageid, true); - private String getElementIdFromScreen(RenderRequest req, String window) { - Integer pageId = getCurrentPageId(req); - NavigationItem item = SiteManagement.getNavigationItem(pageId); - if (item instanceof Page) { - Page page = (Page) item; - int portletId = page.getPortlet(window); - Portlet portlet = SiteManagement.getPortlet(portletId); - if (portlet != null) { - return portlet.getParameterValue(CONTENTELEMENT); - } - } - return null; + if (pagepath != null) { + SetString positions = SiteManagement.getPagePositions(pageid.toString()); + ListString orderedPositions = new ArrayListString(positions); + Collections.sort(orderedPositions); + setAttribute(req, pagepositions, new ArrayListString(orderedPositions)); } - - private Integer getCurrentPageId(RenderRequest req) { - String pageId = (String) req.getAttribute(PortalConstants.CMSC_OM_PAGE_ID); - return Integer.valueOf(pageId); + super.doEditDefaults(req, res); } - private HttpServletRequest getServletRequest(RenderRequest req) { - return (HttpServletRequest) ((PortletRequestImpl) req).getRequest(); + /** +* This method can be overridden to provide your own mechanism for getting an +* elementId. The default implementation returns codenull/code. +* +* @param req +* originating RenderRequest +* @param window +* the passed 'window' parameter. +* @return the elementId +*/ + protected String getElementId(RenderRequest request, String window) { + return null; } private String getElementIdFromRequestParameters(RenderRequest req, String window) { @@ -96,18 +97,18 @@ return null; } -
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv18585/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: RelatedContentPortlet.java Log Message: CMSC-959 - Better version, extendable etc. See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-959 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- RelatedContentPortlet.java 12 Jun 2008 15:12:21 - 1.8 +++ RelatedContentPortlet.java 12 Jun 2008 15:38:15 - 1.9 @@ -13,8 +13,6 @@ import javax.portlet.RenderResponse; import javax.servlet.http.HttpServletRequest; -import net.sf.mmapps.commons.util.StringUtil; - import org.apache.commons.lang.StringUtils; import org.apache.pluto.core.impl.PortletRequestImpl; @@ -34,22 +32,11 @@ @Override protected void doView(RenderRequest req, RenderResponse res) throws PortletException, IOException { String window = req.getPreferences().getValue(WINDOW, null); - if (StringUtils.isNotEmpty(window)) { - String elementId = getElementIdFromRequestParameters(req, window); - if (StringUtils.isEmpty(elementId)) { -elementId = getElementIdFromScreen(req, window); -if (StringUtil.isEmpty(elementId)) { - elementId = getElementIdFromContentURL(req); - if (StringUtils.isEmpty(elementId)) { - elementId = getElementId(req, window); - } -} - } + String elementId = getRelatedElementId(req, window); if (StringUtils.isNotEmpty(elementId)) { setAttribute(req, ELEMENT_ID, elementId); } - } super.doView(req, res); } @@ -68,17 +55,38 @@ } /** -* This method can be overridden to provide your own mechanism for getting an -* elementId. The default implementation returns codenull/code. +* Retrieves the related elementId as a String. The default implementation +* tries to retrieve the element in the following order: +* +* ol +* liFrom the parameter of the current request/li +* liFrom contentelement node parameter of the specified portlet/li +* liFrom a given contentURL (assumes that the elementId we want is +* exactly that elementId)/li +* /ol +* +* The first one to return a non codenull/code value will be returned. * -* @param req -* originating RenderRequest +* @param request +* the render request * @param window -* the passed 'window' parameter. -* @return the elementId +* the specified window (might be codenull/code) +* @return elementId if an elementId could be found, codenull/code +* otherwise. */ - protected String getElementId(RenderRequest request, String window) { - return null; + protected String getRelatedElementId(RenderRequest request, String window) { + String elementId = null; + if (StringUtils.isNotEmpty(window)) { + elementId = getElementIdFromRequestParameters(request, window); + if (StringUtils.isEmpty(elementId)) { +elementId = getElementIdFromScreen(request, window); +if (StringUtils.isEmpty(elementId)) { + elementId = getElementIdFromContentURL(request); +} + } + } + + return elementId; } private String getElementIdFromRequestParameters(RenderRequest req, String window) { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv18654/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: Tag: b1_4 RelatedContentPortlet.java Log Message: CMSC-959 - Better version, extendable etc. See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-959 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.4.2.3 retrieving revision 1.4.2.4 diff -u -b -r1.4.2.3 -r1.4.2.4 --- RelatedContentPortlet.java 12 Jun 2008 14:57:58 - 1.4.2.3 +++ RelatedContentPortlet.java 12 Jun 2008 15:39:30 - 1.4.2.4 @@ -13,8 +13,7 @@ import javax.portlet.RenderResponse; import javax.servlet.http.HttpServletRequest; -import net.sf.mmapps.commons.util.StringUtil; - +import org.apache.commons.lang.StringUtils; import org.apache.pluto.core.impl.PortletRequestImpl; import com.finalist.cmsc.beans.om.NavigationItem; @@ -33,22 +32,11 @@ @Override protected void doView(RenderRequest req, RenderResponse res) throws PortletException, IOException { String window = req.getPreferences().getValue(WINDOW, null); - if (!StringUtil.isEmpty(window)) { - String elementId = getElementIdFromRequestParameters(req, window); - if (StringUtil.isEmpty(elementId)) { -elementId = getElementIdFromScreen(req, window); -if (StringUtil.isEmpty(elementId)) { - elementId = getElementIdFromContentURL(req); - if (StringUtil.isEmpty(elementId)) { - elementId = getElementId(req, window); - } -} - } + String elementId = getRelatedElementId(req, window); - if (!StringUtil.isEmpty(elementId)) { + if (StringUtils.isNotEmpty(elementId)) { setAttribute(req, ELEMENT_ID, elementId); } - } super.doView(req, res); } @@ -67,17 +55,38 @@ } /** -* This method can be overridden to provide your own mechanism for getting an -* elementId. The default implementation returns codenull/code. +* Retrieves the related elementId as a String. The default implementation +* tries to retrieve the element in the following order: +* +* ol +* liFrom the parameter of the current request/li +* liFrom contentelement node parameter of the specified portlet/li +* liFrom a given contentURL (assumes that the elementId we want is +* exactly that elementId)/li +* /ol * -* @param req -* originating RenderRequest +* The first one to return a non codenull/code value will be returned. +* +* @param request +* the render request * @param window -* the passed 'window' parameter. -* @return the elementId +* the specified window (might be codenull/code) +* @return elementId if an elementId could be found, codenull/code +* otherwise. */ - protected String getElementId(RenderRequest req, String window) { - return null; + protected String getRelatedElementId(RenderRequest request, String window) { + String elementId = null; + if (StringUtils.isNotEmpty(window)) { + elementId = getElementIdFromRequestParameters(request, window); + if (StringUtils.isEmpty(elementId)) { +elementId = getElementIdFromScreen(request, window); +if (StringUtils.isEmpty(elementId)) { + elementId = getElementIdFromContentURL(request); +} + } + } + + return elementId; } private String getElementIdFromRequestParameters(RenderRequest req, String window) { @@ -92,16 +101,7 @@ } return elementId; } - return null; - } - private String getElementIdFromContentURL(RenderRequest req) { - String requestURL = getServletRequest(req).getRequestURL().toString(); - Pattern pattern = Pattern.compile(CONTENTURL_ELEMENTID_PATTERN); - Matcher matcher = pattern.matcher(requestURL); - if (matcher.find() matcher.groupCount() = 1) { - return matcher.group(1); - } return null; } @@ -119,6 +119,16 @@ return null; } + private String getElementIdFromContentURL(RenderRequest req) { + String requestURL = getServletRequest(req).getRequestURL().toString(); + Pattern pattern = Pattern.compile(CONTENTURL_ELEMENTID_PATTERN); + Matcher matcher = pattern.matcher(requestURL); + if (matcher.find() matcher.groupCount() = 1) { + return matcher.group(1); + } + return null; + } + private Integer
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv657/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: Tag: b1_4 RelatedContentPortlet.java Log Message: CMSC-863 HttpSessions are used when not necessary and created for useragents which do not maintain a session See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-863 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -b -r1.4 -r1.4.2.1 --- RelatedContentPortlet.java 26 Nov 2007 11:43:40 - 1.4 +++ RelatedContentPortlet.java 21 Apr 2008 10:11:28 - 1.4.2.1 @@ -12,11 +12,9 @@ import org.apache.pluto.core.impl.PortletRequestImpl; -import com.finalist.cmsc.beans.om.Portlet; -import com.finalist.cmsc.portalImpl.registry.PortalRegistry; +import com.finalist.cmsc.beans.om.*; +import com.finalist.cmsc.portalImpl.PortalConstants; import com.finalist.cmsc.services.sitemanagement.SiteManagement; -import com.finalist.pluto.portalImpl.aggregation.Fragment; -import com.finalist.pluto.portalImpl.aggregation.PortletFragment; import net.sf.mmapps.commons.util.StringUtil; @@ -39,21 +37,23 @@ private String getElementIdFromScreen(RenderRequest req, String window) { - HttpServletRequest servletRequest = getServletRequest(req); - PortalRegistry pr = PortalRegistry.getPortalRegistry(servletRequest); - Fragment fragment = pr.getScreen().getFragment(window); - if (fragment == null) { - return null; + Integer pageId = getCurrentPageId(req); + NavigationItem item = SiteManagement.getNavigationItem(pageId); + if (item instanceof Page) { + Page page = (Page) item; + int portletId = page.getPortlet(window); + Portlet portlet = SiteManagement.getPortlet(portletId); + if (portlet != null) { + return portlet.getParameterValue(CONTENTELEMENT); + } } - Portlet portlet = ((PortletFragment) fragment).getPortlet(); - if (portlet == null) { return null; } - return portlet.getParameterValue(contentelement); - // Fragment fragment = pr.getScreen().getFragment(window); - // return - // ((PortletFragment)fragment).getPortlet().getParameterValue(contentelement); + +private Integer getCurrentPageId(RenderRequest req) { +String pageId = (String) req.getAttribute(PortalConstants.CMSC_OM_PAGE_ID); +return Integer.valueOf(pageId); } @@ -81,10 +81,7 @@ @Override protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { - HttpServletRequest servletRequest = getServletRequest(req); - PortalRegistry pr = PortalRegistry.getPortalRegistry(servletRequest); - - Integer pageid = pr.getScreen().getPage().getId(); + Integer pageid = getCurrentPageId(req); String pagepath = SiteManagement.getPath(pageid, true); if (pagepath != null) { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java
Update of /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv790/cmsc/portlets/src/java/com/finalist/cmsc/portlets Modified Files: RelatedContentPortlet.java Log Message: CMSC-863 HttpSessions are used when not necessary and created for useragents which do not maintain a session See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-863 Index: RelatedContentPortlet.java === RCS file: /var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- RelatedContentPortlet.java 26 Nov 2007 11:43:40 - 1.4 +++ RelatedContentPortlet.java 21 Apr 2008 10:11:52 - 1.5 @@ -12,11 +12,9 @@ import org.apache.pluto.core.impl.PortletRequestImpl; -import com.finalist.cmsc.beans.om.Portlet; -import com.finalist.cmsc.portalImpl.registry.PortalRegistry; +import com.finalist.cmsc.beans.om.*; +import com.finalist.cmsc.portalImpl.PortalConstants; import com.finalist.cmsc.services.sitemanagement.SiteManagement; -import com.finalist.pluto.portalImpl.aggregation.Fragment; -import com.finalist.pluto.portalImpl.aggregation.PortletFragment; import net.sf.mmapps.commons.util.StringUtil; @@ -39,21 +37,23 @@ private String getElementIdFromScreen(RenderRequest req, String window) { - HttpServletRequest servletRequest = getServletRequest(req); - PortalRegistry pr = PortalRegistry.getPortalRegistry(servletRequest); - Fragment fragment = pr.getScreen().getFragment(window); - if (fragment == null) { - return null; + Integer pageId = getCurrentPageId(req); + NavigationItem item = SiteManagement.getNavigationItem(pageId); + if (item instanceof Page) { + Page page = (Page) item; + int portletId = page.getPortlet(window); + Portlet portlet = SiteManagement.getPortlet(portletId); + if (portlet != null) { + return portlet.getParameterValue(CONTENTELEMENT); + } } - Portlet portlet = ((PortletFragment) fragment).getPortlet(); - if (portlet == null) { return null; } - return portlet.getParameterValue(contentelement); - // Fragment fragment = pr.getScreen().getFragment(window); - // return - // ((PortletFragment)fragment).getPortlet().getParameterValue(contentelement); + +private Integer getCurrentPageId(RenderRequest req) { +String pageId = (String) req.getAttribute(PortalConstants.CMSC_OM_PAGE_ID); +return Integer.valueOf(pageId); } @@ -81,10 +81,7 @@ @Override protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { - HttpServletRequest servletRequest = getServletRequest(req); - PortalRegistry pr = PortalRegistry.getPortalRegistry(servletRequest); - - Integer pageid = pr.getScreen().getPage().getId(); + Integer pageid = getCurrentPageId(req); String pagepath = SiteManagement.getPath(pageid, true); if (pagepath != null) { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs