Author: fpunt
Date: 2010-08-04 10:08:11 +0200 (Wed, 04 Aug 2010)
New Revision: 43042
Modified:
CMSContainer/trunk/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java
Log:
[CMSC-1725]
Modified:
CMSContainer/trunk/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java
2010-08-03 11:51:26 UTC (rev 43041)
+++
CMSContainer/trunk/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/RelatedContentPortlet.java
2010-08-04 08:08:11 UTC (rev 43042)
@@ -35,7 +35,8 @@
/**
* This regex pattern is used to match the elementId from a renderURL.
*/
- private static final String RENDERURL_ELEMENTID_PATTERN = "_([0-9]+)";
+ private static final String RENDERURL_ELEMENTID_WINDOW_REPLACE = "WINDOW";
+ private static final String RENDERURL_ELEMENTID_PATTERN =
RENDERURL_ELEMENTID_WINDOW_REPLACE+"_elementId/1_([0-9]+)";
@Override
protected void saveParameters(ActionRequest request, String portletId) {
@@ -97,7 +98,7 @@
protected String getRelatedElementId(RenderRequest request, String
relatedPage, String relatedWindow) {
String elementId = getElementIdFromContentURL(request);
if (StringUtils.isEmpty(elementId)) {
- elementId = getElementIdFromRenderURL(request);
+ elementId = getElementIdFromRenderURL(request, relatedWindow);
if (StringUtils.isEmpty(elementId)) {
if (StringUtils.isNotEmpty(relatedPage) &&
StringUtils.isNotEmpty(relatedWindow)) {
elementId = getElementIdFromScreen(request,
relatedPage, relatedWindow);
@@ -131,9 +132,9 @@
return null;
}
- private String getElementIdFromRenderURL(RenderRequest req) {
+ private String getElementIdFromRenderURL(RenderRequest req, String
relatedWindow) {
String requestURL = getServletRequest(req).getRequestURL().toString();
- Pattern pattern = Pattern.compile(RENDERURL_ELEMENTID_PATTERN);
+ Pattern pattern =
Pattern.compile(RENDERURL_ELEMENTID_PATTERN.replaceAll(RENDERURL_ELEMENTID_WINDOW_REPLACE,
relatedWindow));
Matcher matcher = pattern.matcher(requestURL);
String value = null;
while (matcher.find() && matcher.groupCount() >= 1) {
@@ -141,6 +142,7 @@
}
return value;
}
+
private HttpServletRequest getServletRequest(RenderRequest req) {
return (HttpServletRequest) ((PortletRequestImpl) req).getRequest();
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs