[MMBASE CVS] contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets RelatedContentPortlet.java

2009-04-29 Thread mfang
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

2008-06-12 Thread jstroomer
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

2008-06-12 Thread jstroomer
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

2008-06-12 Thread avleeuwen
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

2008-06-12 Thread avleeuwen
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

2008-06-12 Thread avleeuwen
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

2008-06-12 Thread avleeuwen
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

2008-04-21 Thread Nico Klasens
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

2008-04-21 Thread Nico Klasens
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